精灵被触摸时如何做某事(Android AndEngine)?

时间:2013-12-11 14:10:40

标签: android touch andengine sprite

我想在精灵上按住一些周期性的声音。我试着用旗帜,但收到了无休止的循环。

scene.setOnAreaTouchListener(new IOnAreaTouchListener() {
    @Override
    public boolean onAreaTouched(TouchEvent pSceneTouchEvent, ITouchArea pTouchArea, float pTouchAreaLocalX, float pTouchAreaLocalY) {
        if(pSceneTouchEvent.isActionDown()){
            ifHold = true;
            if(pTouchArea.equals(kick1Sprite)){
                while(ifHold){
                    try {
                        kickSound.play();
                        Thread.sleep(soundLoopTimeMilliseconds);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                return true;
            }
        }
        if(pSceneTouchEvent.isActionUp()){
            ifHold = false;
        }
        return false;
    }
});

1 个答案:

答案 0 :(得分:0)

如果您希望声音在触地时播放,请在播放时播放并停止播放,如下所示:

 if(pSceneTouchEvent.isActionDown()){
kickSound.play();
}
 if(pSceneTouchEvent.isActionUp()){
kickSound.stop();
}