Tutorial - Déplacements en Diagonale

Publié le par Gen'Seirin' Kokoro


 
 
 

  Logiciel : RPG Maker 2000/2003
  Niveau : Avancé
  Requis : Connaissances en déplacements, en conditions et demande d'appui touche
  Temps : Un peu plus d'un quart d'heure
 
Pour mener à bien ce tutorial je vous conseille de maîtriser parfaitement les demandes d'appui touches, il serait judicieux d'apprendre à vous en servir avant de commencer à suivre les démarches qui suivent si vous êtes débutant, ne serait-ce que pour comprendre le fonctionnement de cette option.



Comme vous l'avez deviné, nous allons donc nous servir du système de configuration des touches pour compléter le système de déplacement de base du jeu (oui, j'ai bien dit compléter).

Pour ce faire il est plus judicieux d'avoir déjà à votre dispositions les différentes directions du personnage. Ce système n'utilisant pas les déplacement de base d'RPG maker, vous pouvez placer les huit directions comme vous le souhaitez dans votre charset. Bien sûr il est possible de n'utiliser que les quatre positions de base mais l'effet n'en sera que moins agréable.


Le déplacement sur huit directions :


Il existe beaucoup de moyens de réaliser des pseudo-systèmes de déplacements en diagonale. Généralement, la plupart d'entre eux permettent au personnage de se déplacer en diagonale, en effet, mais ils bloquent aussi les touches d'action et d'annulation, ce qui pose évidemment de sérieux problème pour la jouabilité... On pourra evidemment chercher une solution très complexe, en programmant les évènements sur la carte dans les évènements communs par exemple (ce qui prend un temps considérable, et demande une parfaite maîtrise des coordonnées), mais il existe une solution bien plus simple.

En effet, la principale erreur que font les makeurs est de reconfigurer les touches de base, ce qui est inutile étant donné que le système de déplacement les a déjà établies. Le déplacement en diagonale consiste à compléter le système de déplacement de base, et non le remplacer. Il suffit donc de configurer les touches diagonales pour obtenir le fameux système de déplacement en diagonale.

Nous placerons un code "Tout déplacer" après le déplacement pour que le déplacement prenne compte des évènements qui peuvent être activés par contact du héros. Si cette fonction n'est pas présente, alors il ne pourra pas y avoir de contact actif avec un autre évènement.

Il existe une technique toute simple pour intégrer le déplacement en diagonale au système existant :

_Tout d'abord, créez un nouvel évènement commun en processus parallèle.

Note : vous pouvez sélectionner un interrupteur de déclenchement pour utiliser le système de déplacement quand vous le voulez.



_Entrez les commandes suivantes :

<>Etiquette 1
<>Appui d'une touche [001:bas] (cochez bas)
<>Appui d'une touche [002:gauche] (cochez gauche)
<>Appui d'une touche [003:droite] (cochez droite)
<>Appui d'une touche [004:haut] (cochez haut)
<>Si variable[003:droite] 3
<>Si variable[004:haut] 4
<>Déplacer/Modifier: Héros, Changer d'apparence, Pas droite/haut
<>Tout déplacer
<>Aller à l'étiquette: 1
<>
Fin
<>
Fin
<>Si variable[003:droite] 3
<>Si variable[001:bas] 1
<>Déplacer/Modifier: Héros, Changer d'apparence, Pas droite/bas
<>Tout déplacer
<>Aller à l'étiquette: 1
<>
Fin
<>
Fin
<>Si variable[002:gauche] 2
<>Si variable[004:haut] 4
<>Déplacer/Modifier: Héros, Changer d'apparence, Pas gauche/haut
<>Tout déplacer
<>Aller à l'étiquette: 1
<>
Fin
<>
Fin
<>Si variable[002:gauche] 2
<>Si variable[001:bas] 1
<>Déplacer/Modifier: Héros, Changer d'apparence, Pas gauche/bas
<>Tout déplacer
<>Aller à l'étiquette: 1
<>
Fin
<>
Fin

Vous obtiendrez un parfait déplacement en diagonale, mais il restera un problème au niveau de l'animation : les position de base n'apparaissent plus et restent en diagonale même lorsque vous marchez vers le haut. Pour y remédier, il suffit de rajouter un bout de code avant les appui touche :

Si les directions ne sont pas diagonales, c'est qu'elles sont forcément haut, bas, droite ou gauche. Ce code remettra donc le chara d'origine (celui avec uniquement 4 positions). Mais ceci crée donc un nouveau problème, étant donné que ces commandes interviennent dans le déplacement de base, elle empêchent les évènements de s'activer au contact du héros.

<>Si variable [001:bas] 1
<>Déplacer/Modifier: Héros, Changer Apparence (remettez le chara d'origine)
<>
Fin
<>Si variable [002:gauche] 2
<>Déplacer/Modifier: Héros, Changer Apparence (remettez le chara d'origine)
<>
Fin
<>Si variable [003:droite] 3
<>Déplacer/Modifier: Héros, Changer Apparence (remettez le chara d'origine)
<>
Fin
<>Si variable [004:haut] 4
<>Déplacer/Modifier: Héros, Changer Apparence (remettez le chara d'origine)
<>
Fin


La manipulation de variables et de déplacements est délicate, je me suis expliqué du mieux possible pour être clair et précis, mais n'oubliez pas de comparer votre code obtenu à celui du screen pour vérifier si tout correspond.


Si vous avez programmé correctement, dorénavant votre personnage pourra se déplacer en diagonale et intéragir avec les évènements placés sur la cartes ! Ce système, même s'il permet à l'origine de déplacer le héros dans toutes les directions, peut être exploité à bien d'autres fins, faites vivre votre imagination !

Si vous avez des problèmes, des questions ou des modifications à apporter à ce tutorial n'hésitez pas à me contacter, merci de votre écoute !

Publié dans RPG Making

Pour être informé des derniers articles, inscrivez vous :

Commenter cet article

Gen'Seirin' Kokoro 14/03/2007 17:53

Le seul problème c'est que si tu changes le chara du personnage, ton héros ne pourra plus interagir avec les évènements qui s'activent au contact, j'ai essayé de régler le problème mais sans succès : la seule solution que j'ai trouvé, c'est de mettre ces évènements en contact évènement/héros... Reste le problème que l'évènement s'activera tant que le héros restera dessus, ce qui te force à mettre une légère attente après l'action de l'évènement. C'est un cercle vicieux, alors j'ai préféré laisser comme tel au lieu de me perdre dans des lignes de code inutiles.En tout cas si ça te convient comme ça, tant mieux, merci à toi ^^

dbzxfury 13/03/2007 18:47

terrible ton tutorial, je l'ai testé, et il marche parfaitement