J'essaye d'écrire la logique d'une séquence d'animation et je n'arrive pas à la corriger. Ce que je veux arriver est: si l'utilisateur clique sur l'écran, la méthode prend dans les coordonnées touchEvent, puis modifie les variables de mouvement d'une image-objet de sorte que le sprite se déplace à l'endroit où l'utilisateur a touché l'écran. J'ai ma configuration d'événement de "lancement" comme ceci.Android Animation Question
public void launch(float eventX, float eventY) {
//get the touch event coords and then move the banana to them.
fire = true;
//the x and y variables for the sprite
getX();
getY();
//the target x and y variables
targetX = eventX;
targetY = eventY;
//the total distance the two variable have to "travel"
distanceX = x - targetX;
distanceY = y - targetY;
//variables to update the movement
moveX = distanceX;
moveY = distanceY;
}
Alors, je pensais que je devais mettre les variables de mouvement dans la méthode de mise à jour comme celui-ci:
public void update(long gameTime) {
if(gameTime > frameTicker + framePeriod) {
frameTicker = gameTime;
currentFrame++;
if(currentFrame >= frameNbr){
currentFrame = 0;
}
}
this.sourceRect.left = currentFrame * spriteWidth;
this.sourceRect.right = this.sourceRect.left + spriteWidth;
if(fire == true){
x = (int) moveX;
y = (int) moveY;
}
Si l'utilisateur clique comme il est, l'animation apparaît comme il est censé, mais alors instantanément va dans le coin supérieur gauche de l'écran ou ce que je viens de comprendre est (0,0) sur un système de coordonnées. Je n'arrive pas à comprendre comment le ralentir afin qu'il se déplace dans un espace raisonnable et qu'il se dirige là où il est supposé le faire.