Author Topic: Diagonales avec le mouvement de type "straight"  (Read 195 times)

Jerelink

  • Newbie
  • *
  • Posts: 15
    • View Profile
Diagonales avec le mouvement de type "straight"
« on: August 25, 2017, 09:28:51 pm »
Salut la communauté !

Je suis embêté par un petit problème concernant le mouvement de type "straight".
J'aimerais pouvoir déplacer une entité dans les quatre directions diagonales, seulement je ne comprends pas bien le concept de math.pi au delà des directions de base.

Autrement, est-il possible de faire cela différemment ? C'est dans le contexte d'un script de déplacement customisé pour certain type de pnj.

Merci et bonne soirée :)

Christopho

  • Administrator
  • Hero Member
  • *****
  • Posts: 1046
    • View Profile
Re: Diagonales avec le mouvement de type "straight"
« Reply #1 on: August 25, 2017, 09:47:40 pm »
math.pi = 180 degrés
2 * math.pi = 360 degrés

math.pi / 2 = 90 degrés
math.pi / 4 = 45 degrés

etc.
Tu peux te faire une fonction de conversion degrés/radians pour pouvoir rester en degrés si tu es plus à l'aise.

Jerelink

  • Newbie
  • *
  • Posts: 15
    • View Profile
Re: Diagonales avec le mouvement de type "straight"
« Reply #2 on: August 26, 2017, 11:16:30 am »
J'ai plus ou moins trouvé les valeurs adéquates dans ce que cherche à faire avec math.pi/4 comme base.
Tout fonctionne correctement merci ! :) Cependant je me demande si ce n'est pas grossier d'avoir écrit cela comme suit :

Code: Lua
  1.     if direction.angle == 0 then
  2.       movement:set_angle(7 * math.pi / 4)  -- bas/droite
  3.     elseif direction.angle == 1 then
  4.       movement:set_angle(math.pi / 4)      --haut/droite
  5.     elseif direction.angle == 2 then
  6.       movement:set_angle(3 * math.pi / 4)  --haut/gauche
  7.     else
  8.       movement:set_angle(math.pi * 5 / 4)  --bas/gauche
  9.     end

PhoenixII54

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Diagonales avec le mouvement de type "straight"
« Reply #3 on: September 05, 2017, 08:54:17 pm »
En fait, tu peux simplifier ton script en faisant
Code: Lua
  1. movement:set_angle=(math.pi*(2*direction.angle-1)%8)/4
'Faut faire un peu de gymnastique du cerveau mais sauf erreur de ma part tu as une formule "universelle" ;)

Jerelink

  • Newbie
  • *
  • Posts: 15
    • View Profile
Re: Diagonales avec le mouvement de type "straight"
« Reply #4 on: September 06, 2017, 02:09:04 pm »
Cela ne fonctionne pas tout à fait ^^, puis
Code: Lua
  1. movement:set_angle(math.pi*(2*direction.angle-1)%8/4)
me semble plus exact afin de fonctionner, autrement le script me renvoie un message d'erreur. Après, ce n'est pas bien grave, tant que ça fonctionne comme ça.
C'est assez rustique comme méthode mais ça fonctionne  ;D.

Merci quand même de ton aide PhoenixII54 !

PhoenixII54

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: Diagonales avec le mouvement de type "straight"
« Reply #5 on: September 06, 2017, 05:24:26 pm »
Mea culpa, j'avais pas vu que j'avais laissé le "=" dans mon code. En tout cas, ravi d'avoir pu être utile