I have a simple problem. I have a button on the screen. I want isActionDown to push the button down, and isActionUp to push the button back up again and make my character jump. But the problem is if I push the button down and drag away from it, the button stays pushed down. I would like the button to push back up again if the user drags away from it.
How can I create the desired affect? isActionCancel doesn't seem to do the trick.
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);
}
I'm having the hardest time with this, and I've tried all sorts of variations of the code above. Please let me know if you have the solution.
Thanks for your help!