2016-10-31 3 views
0

J'essaie de faire pivoter un sprite en fonction de l'endroit où mon doigt est placé sur l'écran tactile.Rotation sprite dans libgdx en suivant la position du doigt sur android

J'ai une flèche et je veux que la flèche pointe sur mon doigt tout le temps que je le fais glisser sur l'écran.

je pouvais facilement définir l'image-objet à une rotation à l'aide sprite.setRotation (angle)

Comment dois-je prendre?

Très apprécié si vous pouvez me diriger dans la bonne direction.

Répondre

1

(ax, ay) est coordonnées du centre de la flèche et (fx, fy) est les coordonnées du doigt et a est l'angle, voici quelques pseudo-code:

dx = fx - ax 
dy = fy - ay 
if (dx == 0) { 
    a = 90 
    return 
} 
if (dy == 0) { 
    a = 0 
    return 
} 
//tan(a) == abs(dy)/abs(dx) therefore 
a = arctan(dy/dx) 
if (dx > 0 && dy > 0) { 
    // do nothing, a is correct 
} else if (dx > 0 && dy < 0) { 
    a = 360 - a 
} else if (dx < 0 && dy > 0) { 
    a = 180 - a 
} else { 
    a = 180 + a 
} 

Je ne l'ai pas implémenter et tester encore , Je le ferai plus tard s'il y aura besoin

+0

J'ai essayé de l'implémenter mais pas de chance. J'ai supposé 'tan (a) == abs (dy)/abs (dx) a = arctan (dy/dx);' Était une déclaration if. Je pense que je sais où vous allez avec ça je vais garder @, j'ai besoin de rafraîchir sur un certain trig. – Marke

+0

Je l'ai eu comme ouvrier grâce à vous! – Marke

+0

Je suis content que ma réponse soit utile, désolé, c'est ambigu, je n'ai eu que quelques minutes pour l'écrire – sasha199568