| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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
|