mirror of
https://github.com/bulletphysics/bullet3.git
synced 2026-06-11 17:53:54 +00:00
Fixes in TinyAudio, play sound on collision impact, can be configured in URDF/SDF file.
Requires a modified setup.py (or use premake4 to compile)
Example script:
import pybullet as p
import time
p.connect(p.GUI)
plane = p.loadURDF("plane_with_collision_audio.urdf")
box = p.loadURDF("cube.urdf",[0,0,1])
p.setGravity(0,0,-10)
while (1):
p.stepSimulation()
time.sleep(1./240.)
This commit is contained in:
@@ -3236,15 +3236,15 @@ bool PhysicsServerCommandProcessor::processImportedObjects(const char* fileName,
|
||||
#ifdef B3_ENABLE_TINY_AUDIO
|
||||
{
|
||||
SDFAudioSource audioSource;
|
||||
int urdfLinkIndex = creation.m_mb2urdfLink[link];
|
||||
int urdfLinkIndex = creation.m_mb2urdfLink[i];
|
||||
if (u2b.getLinkAudioSource(urdfLinkIndex, audioSource))
|
||||
{
|
||||
int flags = mb->getLink(link).m_collider->getCollisionFlags();
|
||||
int flags = mb->getLink(i).m_collider->getCollisionFlags();
|
||||
mb->getLink(i).m_collider->setCollisionFlags(flags | btCollisionObject::CF_HAS_COLLISION_SOUND_TRIGGER);
|
||||
audioSource.m_userIndex = m_data->m_soundEngine.loadWavFile(audioSource.m_uri.c_str());
|
||||
if (audioSource.m_userIndex >= 0)
|
||||
{
|
||||
bodyHandle->m_audioSources.insert(link, audioSource);
|
||||
bodyHandle->m_audioSources.insert(i, audioSource);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user