本文整理汇总了C++中SoundInstance::setPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ SoundInstance::setPosition方法的具体用法?C++ SoundInstance::setPosition怎么用?C++ SoundInstance::setPosition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SoundInstance
的用法示例。
在下文中一共展示了SoundInstance::setPosition方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SoundManager
SoundTest()
{
//soundManager = new SoundManager();
//soundManager->connectToServer("localhost",57120);
// More concise method of above two lines
soundManager = new SoundManager("localhost",57120);
soundManager->showDebugInfo(true);
// Get default sound environment
env = soundManager->getSoundEnvironment();
while( !soundManager->isSoundServerRunning() )
{
soundManager->startSoundServer();
}
// Load sound assets
//env->setAssetDirectory("menu_sounds");
showMenuSound = env->loadSoundFromFile("showMenuSound","menu_sounds/menu_load.wav");
hideMenuSound = env->loadSoundFromFile("hideMenuSound","menu_sounds/menu_closed.wav");
scrollMenuSound = env->loadSoundFromFile("scrollMenuSound","menu_sounds/menu_scroll.wav");
selectMenuSound = env->loadSoundFromFile("selectMenuSound","menu_sounds/menu_select.wav");
soundLoop = env->loadSoundFromFile("mus","Omega4Relay.wav");
SoundInstance* soundInstance = new SoundInstance(showMenuSound);
soundInstance->setReverb( 1.0, 1.0 );
soundInstance->setVolume(1.0);
soundInstance->setPosition( Vector3f(0,1,0) );
soundInstance->play();
rewindingSoundInstance = new SoundInstance(showMenuSound);
}
示例2: handleEvent
void HelloApplication::handleEvent(const Event& evt)
{
if(evt.getServiceType() == Service::Wand)
{
xPos = evt.getPosition().x();
yPos = evt.getPosition().y();
zPos = evt.getPosition().z();
if( soundLoopInst != NULL )
soundLoopInst->setPosition( evt.getPosition() );
if( evt.getType() == Event::Down )
{
if( evt.getFlags() == Event::Button3 ) // Wand cross button
{
// playStereo() is for ambient music.
// Currently available functions:
// setVolume(float) - amplitude from (0.0 - 1.0)
// setLoop(bool)
// stop() - this means this instance is finished and a new
// sound instance will need to be created to play
SoundInstance* musicInst = new SoundInstance(music);
musicInst->setVolume(0.2f);
musicInst->playStereo();
}
else if( evt.getFlags() == Event::Button5 ) // Wand L1
{
env->getSoundManager()->stopAllSounds();
}
else if( evt.getFlags() == Event::ButtonLeft ) // DPad
{
SoundInstance* soundInst = new SoundInstance(sound);
soundInst->setPosition( evt.getPosition() );
soundInst->play();
changeCubeColor = true;
}
else if( evt.getFlags() == Event::ButtonRight ) // DPad
{
if( soundLoopInst != NULL || !soundLoopInst->isPlaying() )
{
// Positional sounds use play()
// Currently available functions:
// stop() - this means this instance is finished and a new
// sound instance will need to be created to play
// setPosition(Vector3f)
// setVolume(float) - amplitude from (0.0 - 1.0)
// setLoop(bool)
// setMix(float) - wetness of sound (0.0 - 1.0)
// setReverb(float) - room size / reverb amount (0.0 - 1.0)
// setWidth(int) - number of speakers to spread sound across (1-20)
// This will eventually be replaced with a sound radius
soundLoopInst = new SoundInstance(sound1);
soundLoopInst->setPosition( evt.getPosition() );
soundLoopInst->setLoop(true);
soundLoopInst->setVolume(0.2f);
soundLoopInst->setWidth(3);
soundLoopInst->play();
}
else if( soundLoopInst != NULL )
{
soundLoopInst->stop();
}
changeCubeColor = true;
}
else
{
SoundInstance* soundInst = new SoundInstance(sound);
soundInst->setPosition( evt.getPosition() );
soundInst->setRoomSize(1.0);
soundInst->setWetness(1.0);
//soundInst->setVolume(0.5);
soundInst->play();
changeCubeColor = true;
}
}
else if( evt.getType() == Event::Up )
{
changeCubeColor = false;
}
}
}
示例3: handleEvent
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Checks the type of event. If a valid event, creates an event packet and returns true. Else return false.
virtual bool handleEvent(const Event& evt)
{
float leftRightAnalog;
float upDownAnalog;
float zeroTolerence = 0.008f;
float xPos;
float yPos;
float zPos;
switch(evt.getServiceType())
{
case Service::Wand:
leftRightAnalog = evt.getExtraDataFloat(0);
upDownAnalog = evt.getExtraDataFloat(1);
volume = evt.getExtraDataFloat(4);
if( soundLoopInstance != NULL )
{
soundLoopInstance->setVolume(volume);
}
if( evt.getType() == Event::Down ){
if( evt.getFlags() & Event::Button3){ // Cross
soundLoopInstance->setEnvironmentSound( true );
soundLoopInstance->setLoop( true );
soundLoopInstance->playStereo();
}
if( evt.getFlags() & Event::Button2){ // Circle
soundLoopInstance->stop();
}
if( evt.getFlags() & Event::Button5){ // L1
soundLoopInstance = new SoundInstance(soundLoop);
}
if( evt.getFlags() & Event::ButtonRight){
rewindingSoundInstance->setPosition( Vector3f(leftRightAnalog,1,0) );
rewindingSoundInstance->setReverb( upDownAnalog, upDownAnalog );
rewindingSoundInstance->play();
}
if( evt.getFlags() & Event::ButtonLeft){
SoundInstance* soundInstance = new SoundInstance(hideMenuSound);
soundInstance->setPosition( Vector3f(leftRightAnalog,1,0) );
soundInstance->setReverb( upDownAnalog, upDownAnalog );
soundInstance->play();
}
if( evt.getFlags() & Event::ButtonUp){
SoundInstance* soundInstance = new SoundInstance(selectMenuSound);
soundInstance->setPosition( Vector3f(leftRightAnalog,1,0) );
soundInstance->setReverb( upDownAnalog, upDownAnalog );
soundInstance->play();
}
if( evt.getFlags() & Event::ButtonDown){
SoundInstance* soundInstance = new SoundInstance(scrollMenuSound);
soundInstance->setPosition( Vector3f(leftRightAnalog,1,0) );
soundInstance->setReverb( upDownAnalog, upDownAnalog );
soundInstance->play();
}
//printf("%d \n", evt.getFlags() );
}
if( (leftRightAnalog > zeroTolerence || leftRightAnalog < -zeroTolerence) &&
(upDownAnalog > zeroTolerence || upDownAnalog < -zeroTolerence)
){
position[0] = leftRightAnalog;
position[1] = upDownAnalog;
printf("Analog Stick: %f %f\n", position[0], position[1]);
}
if( volume > 0 )
printf("Analog Trigger (L2): %f\n", volume);
return true;
break;
case Service::Mocap:
//if( evt.getSourceId() == 0 )
// soundManager->setListenerPosition( evt.getPosition() );
//env->setListenerPosition( Vector3f(0,0,0) );
//else if( instanceCreated && evt.getSourceId() == 1 )
// soundInstance->setPosition( evt.getPosition() );
//printf("ID: %d Pos: %f %f %f\n", evt.getSourceId(), evt.getPosition(0), evt.getPosition(1), evt.getPosition(2) );
break;
}
return false;
}