J'ai actuellement un jeu 2D dans lequel j'essaie de déplacer une image .png suivant certaines coordonnées. Si j'où placer cet objet à (0,0) et ensuite essayer de passer à (500500), je pouvais faire ce qui suit:Comment déplacer un objet d'un point à un autre via des coordonnées?
public void move() {
if (x < 500) {
x += velocityX;
}
if (y < 500) {
y += velocityY;
}
}
Ce travaillerais, mais seulement parce que sa ligne diagonale parfaitement. Avec ce système, je ne peux déplacer l'objet que horizontalement, verticalement ou en diagonale, mais jamais entre les deux. Si je devais essayer quelque chose comme:
public void move() {
if (x < 500) {
x += velocityX;
}
if (y < 400) {
y += velocityY;
}
}
L'objet serait tout simplement se déplacer dans un angle en diagonale parfaite jusqu'à ce qu'il atteigne 400 sur l'axe y, il se déplacerait horizontalement pour le dernier bit pour atteindre 500 sur l'axe x. Comment ferais-je pour que je puisse déplacer l'objet à n'importe quelle coordonnée tout en suivant un chemin droit?
Arithmétique. Déterminez la distance à laquelle vous voulez déplacer l'objet (sur chaque axe); divisez les distances par le nombre de pas que vous voulez faire; ajouter à x et y respectivement. – khelwood
@khelwood Nombre de pas? –
nombre de marches signifie après combien de tours vous voulez que votre image soit en haut. –