关于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);

 

posted @ 2016-12-05 18:10  杭者  阅读(1431)  评论(0编辑  收藏  举报