J'essaie de renvoyer un point d'une méthode qui calcule l'angle en tant que vecteur.Essayer de déplacer par point.x/.y moins de 1
J'ajoute ensuite ces points x & y à mon objet joueur (à partir de l'exemple de code) Les nombres x et y - ce sont des nombres, pas un point. Dans d'autres endroits, je vois des nombres définis comme flottants, donc je ne m'attendais pas à ce que ce soit un problème. Lorsque je multiplie distvar et distvar2 par * 2, alors mon objet se déplace, mieux je peux dire car les valeurs, précédemment .59 ~ & -.8 ~, sont supérieures à 1 (valeur absolue).
Des indices? Devrais-je simplement utiliser une variable Point sur mon objet joueur à la place? Y a-t-il autre chose que je dois faire pour convertir un point.x/y en un nombre? Nouveau pour flasher, appréciez votre aide.
Merci!
public function GetAngle(initialp:Point,secondp:Point):Point{
distvar = ((initialp.x - secondp.x) * (initialp.x - secondp.x));
distvar2 = ((initialp.y - secondp.y) * (initialp.y - secondp.y));
//Emergency guard clause against dividing by 0
if (distvar + distvar2 == 0){
distvar = 1;
distvar2 = 1;
}
veldistance = Math.sqrt((distvar+distvar2));
distvar = ((Math.abs(initialp.x-secondp.x))/veldistance);
distvar2 = ((Math.abs(initialp.y-secondp.y))/veldistance);
if (secondp.x < initialp.x){
distvar = -distvar;
}
if (secondp.y < initialp.y){
distvar2 = -distvar2;
}
apoint.x = distvar;
apoint.y = distvar2;
return apoint;
'var veldistance: Number = Math.sqrt (distvar + distvar2);' et 'return new Point (distvar, distvar2);' pourrait aider – www0z0k
Merci, je réglais auparavant veldistance en tant que variable d'instance au lieu de locale à cela méthode. Je me demandais comment faire cela, merci. – quantumpotato