J'essaie de faire un bitmap, stocké dans la classe Player, suivez mon doigt sans lui donner la possibilité de "téléporter". J'ai d'abord essayé ce bloc de code:Problèmes avec bitmap suivant mon doigt
@Override
public boolean onTouchEvent(MotionEvent event) {
pointerX = (int)event.getX();
pointerY = (int)event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
pointerX = (int)event.getX();
pointerY = (int)event.getY();
if (player.playerAlive) {
if((event.getX() > player.getX() || event.getX() < player.getX() + player.getWidth()) &&
(event.getY() > player.getY() || event.getY() < player.getY() + player.getHeight())) {
isDown = true;
}
}
break;
case MotionEvent.ACTION_MOVE:
if(isDown){
player.move(true);
}
break;
case MotionEvent.ACTION_UP:
isDown = false;
break;
}
return true;
}
Cependant, je remarque que même le changement moindre du doigt lors du taraudage se traduira par Action_MOVE, donc je l'ai remplacé le code ACTION_MOVE à ceci:
if(isDown){
if(event.getX() < pointerX - 20 || event.getX() > pointerX + 20)
player.move(true);
if(pointerY < event.getY() - 20 || pointerY > event.getY() + 20)
player.move(true);
}
Mais cela a eu pour résultat que le joueur ne bouge plus du tout, alors qu'avant, le joueur suivait correctement le doigt mais il se «téléporte» aussi si je m'éloignais du lecteur. Comment puis-je me débarrasser correctement du comportement de "téléportation"?