J'ai le déplacement en diagonale dans mon jeu maintenant mais une question me tracasse et je sais pas comment arranger ça (c'est sur RM03)
... en même temps c'est une question mais alors pourquoi lors de la marche en diagonale le héros marche 2x plus vite ?
Il ne marche pas 2 fois plus vite mais à peu près 1.41 fois plus vite. Je t'explique. Imaginons par exemple que le héros est en bas à gauche d'un carré :
------------
| |
| |
| |
| |
X-----------
S'il va à droite, il se retrouve en bas à droite du carré au bout d'un certain temps. S'il va en haut, il met exactement le même temps. Mais s'il fait les deux à la fois (donc s'il se déplace en diagonale), il doit mettre plus longtemps car la distance est plus longue (racine de 2 = à peu près 1.41 fois plus longue en fait).
Il y avait d'ailleurs ce bug dans la démo 1.0 de Mercuris' Chest ^^
Ce n'est pas le seul problème pour faire un bon moteur de déplacement en diagonale.
- Si le joueur se déplace dans une des 4 directions principales (par exemple vers la droite) et qu'il rencontre un mur oblique (par exemple en haut à droite) il ne doit pas s'arrêter mais "glisser" contre le mur (dans notre exemple, il doit aller en bas à droite). Tout en adaptant bien sûr sa vitesse comme expliqué plus haut puisqu'il se déplace en diagonale.
- Si le joueur se déplace en diagonale (par exemple vers en haut à droite) et qu'il rencontre un mur pas oblique (par exemple un mur en haut), il ne doit pas s'arrêter mais là aussi "glisser" contre le mur (dans notre exemple, il doit aller à droite). Là aussi il faut penser à corriger sa vitesse car il va cette fois dans une des 4 directions principales...
Bref, c'est assez prise de tête, et bon courage pour gérer tout ça avec RPG Maker :mrgreen:
Je me permets d'ajouter que les collisions doivent du coup être totalement personalisées, vu que les détections de base bugggent un max en diagonale. Donc à moins que tu veuilles vraiment refaire toutes tes collisions(et d'ailleurs c'est même pas sûr que ce soit fiable) je te conseille de laisser tomber ça sous RM.
...Ou de passer à RMXP :P.
Citation de: daru13 le 19 Mai 2008 à 18:10
...Ou de passer à RMXP :P.
Mouais, ben refaire tout son projet sous RMXP c'est un peu brutal non pour un simple système de marche en diagonale.
En plus la technique sous RMXP est tout autant buggée(sauf pour ceux qui aiment le Ruby, mais que si tu aimes codes t'as qu'à simplement passe à Game Maker).
Oui je sous-entendais d'utiliser du RUBY ^_^.
Mais je disais RMXP et pas GM par ce que il faudrait qu'il apprendre à se servir de GM ( bien que tu ai des bases, hein Linkor ^^ ), et que il aurait pu juste prendre un script tout fait et pas obligatoirement apprendre à coder en RUBY.
Prendre un script c'est caca, on vous l'as déjà dis.
De façon générale pomper un truc que tu comprends pas ça sert a rien. Un jour ou l'autre t'auras un problème. Et bah tu devras tout recommencer.
GM tu as pas un moteur tout fait. Tu as juste un bibliothèque ( enfin même plus ) mais c'est pas un moteur. Tu maitrises ce que tu fait.
CitationUn jour ou l'autre t'auras un problème. Et bah tu devras tout recommencer.
Suffit de poser la question ^^. Et pi', pourquoi tout recommencer ? :blink:
Sinon, je parlais uniquement d'un script de déplacement, hein ^^'.
Mis c'est certain que c'est plus ouvert, plus polyvalent, j'avais fait une casse-brique dessus et de refaire ça sans script sous RM ça aurais été bien plus ch**nt, c'est certain ^^" !
Bref...
C'est pas ça, c'est surtout qu'un code ça plante. Surtout les script modifier pour RM vu le peu de test qu'ils ont subi. Alors si c'est pas toi qui l'as fait impossible de le réparer et le gars qui a écris son truc a peut-être pas envie de se taper du support.
Bon dans l'optique d'en utiliser qu'un seul... Mais on vous connait, si ça plante parce que vous avez mis une vingtaine de script...