关于Cocos2d-x中音效重复播放问题的解决
在做一些动作的时候,有时候只希望播放一次音效,但是触发音效的前提条件是要按着某个按钮,如果直接把播放音效的语句写在MOVED的case中,就会重复播放音效
解决方法就是把播放音效的语句写在BEGAN的case中,这样,每次点击下去的时候只会播放一次,播放语句在其他的任何位置都不合适
1 creep->addTouchEventListener([=](Ref * pSender, Widget::TouchEventType type){ 2 switch (type) 3 { 4 5 case Widget::TouchEventType::BEGAN: 6 //播放下蹲音效 7 SimpleAudioEngine::getInstance()->playEffect("sound/creep3.mp3"); 8 case Widget::TouchEventType::MOVED: 9 10 if (!_isOver) 11 { 12 gamecontroller->onCreep(); 13 } 14 break; 15 case Widget::TouchEventType::ENDED: 16 if (!_isOver) 17 { 18 gamecontroller->onNormal(); 19 } 20 break; 21 default: 22 break; 23 } 24 }); 25 this->addChild(creep, 4, GameScene::NodeTag::CONTROLBTNS);