Andengine onAreaTouched TouchEvent无法正常工作 - ACTION_OUTSIDE& ACTION_CANCEL

时间:2014-11-19 22:11:14

标签: java android andengine

我有一个简单的问题。我屏幕上有一个按钮。我希望isActionDown按下按钮,isActionUp再次按下按钮,让我的角色跳跃。但问题是,如果我按下按钮并拖离按钮,按钮会保持按下状态。如果用户拖离按钮,我希望按钮再次向上推。

如何创造所需的效果? isActionCancel似乎没有做到这一点。

    private void addButton(){
    goB = new AnimatedSprite(240, 364, ResourceManager.getInstance().go_region, vbom){
        @Override
        public boolean onAreaTouched(final TouchEvent event, final float x, final float y){


            if (event.isActionDown()){
                goB.animate(new long[]{ 250 }, new int[] { 1 }, true);
                /*if(event.isActionCancel()){
                    goB.animate(new long[]{ 250 }, new int[] { 0 }, true);
                }*/
            }
            if (event.isActionUp()){
                goB.animate(new long[]{ 250 }, new int[] { 0 }, true);
                fresh = true;
                playerBody.applyLinearImpulse(new Vector2(0, 45), playerBody.getPosition());
            }


            if (event.isActionCancel() || event.isActionOutside()){
                goB.animate(new long[]{ 250 }, new int[] { 0 }, true);
            }
            return true;
        }
    };
    goB.setScale(3);

    registerTouchArea(goB);
    attachChild(goB);

    goB.animate(250);
}

我度过了最艰难的时光,而且我已尝试过上述代码的各种变体。如果您有解决方案,请告诉我。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用

setTouchAreaBindingOnActionDownEnabled(true);
setTouchAreaBindingOnActionMoveEnabled(true);

功能