Dans le cadre du développement d'un jeu de shoot en 2D, je suis confronté a un probleme : je désire faire bouger en diagonale une surface représentant mon Player. Le mouvement du Player est de 7 pixels a chaque pas et j'ais raisonné comme suit :
-le pas doit etre aussi "grand" en diagonale qu'en ligne droite, d'où:
1 2 3
| *A AB = 1 pas en diagonale
*B AC = 1 pas "normal"
*C |
-Comme on ne peux modifier l'ordonnée et l'abscisse d'une image en meme temps, j'ai utilisé le théorème de Pythagore ( collège, quand tu nous tient
) pour déterminer de combien de pixels le player doit bouger d'abord en ordonnée, puis en abscisse ( environ 5 en X et Y ). J'ais donc appliqué le code :
Si "Mouvement du Player", Alors 5 += Player_x; SDL_Delay(1); 5 += Player_y;
Le code marche tres bien, c'est juste que l'effet est tres disgracieux
Avez vous une méthode pour déplacer une surface en diagonale ?
De plus, je suis allé faire un tour dans les précédents posts ( ceux d'il y a 6 mois ) et je suis tombé sur ça :
Si tu es en C++ tu peux aussi utiliser les maps
Le sujet était la mise en place d'un fichier de configuration performant, mais je ne voit pas du tout ce que sont les maps ... ( a part maps de jeu
)
Pouvez vous m'en dire plus sur ces maps ??
Partager