mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-29 00:06:44 -04:00
tests: add unit tests for Audio3DManager sound velocity
This commit is contained in:
parent
2da791b9fb
commit
0c5546bcb0
55
tests/showbase/test_Audio3DManager.py
Normal file
55
tests/showbase/test_Audio3DManager.py
Normal file
@ -0,0 +1,55 @@
|
||||
from direct.showbase.Audio3DManager import Audio3DManager
|
||||
from panda3d import core
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
||||
def manager3d():
|
||||
root = core.NodePath("root")
|
||||
manager = core.AudioManager.create_AudioManager()
|
||||
manager3d = Audio3DManager(manager, root=root)
|
||||
yield manager3d
|
||||
del manager3d
|
||||
manager.shutdown()
|
||||
|
||||
|
||||
def test_audio3dmanager_velocity(manager3d):
|
||||
sound = manager3d.load_sfx("nonexistent")
|
||||
|
||||
# Generate an object with movement
|
||||
object = core.NodePath("object")
|
||||
object.set_pos(0, 0, 0)
|
||||
object.set_fluid_pos(1, 2, 3)
|
||||
assert object.get_pos_delta() == (1, 2, 3)
|
||||
|
||||
res = manager3d.attach_sound_to_object(sound, object)
|
||||
assert res
|
||||
|
||||
clock = core.ClockObject.get_global_clock()
|
||||
clock.mode = core.ClockObject.M_slave
|
||||
clock.dt = 0.5
|
||||
|
||||
# Test auto velocity calculation
|
||||
manager3d.set_sound_velocity_auto(sound)
|
||||
assert manager3d.get_sound_velocity(sound) == (2, 4, 6)
|
||||
|
||||
# Test setting to fixed value
|
||||
manager3d.set_sound_velocity(sound, (5, 5, 5))
|
||||
assert manager3d.get_sound_velocity(sound) == (5, 5, 5)
|
||||
|
||||
|
||||
def test_audio3dmanager_weak(manager3d):
|
||||
sound = manager3d.load_sfx("nonexistent")
|
||||
object = core.NodePath("object")
|
||||
|
||||
res = manager3d.attach_sound_to_object(sound, object)
|
||||
assert res
|
||||
assert object in manager3d.sound_dict
|
||||
|
||||
manager3d.update()
|
||||
assert object in manager3d.sound_dict
|
||||
|
||||
object.remove_node()
|
||||
manager3d.update()
|
||||
|
||||
assert object not in manager3d.sound_dict
|
Loading…
x
Reference in New Issue
Block a user