TUTORIAL DE GUNFIGHT AVANCE
Par Naked-Snake
Eh bien déjà salut à tous, me revoilà dans un autre tuto, j’en entends déjà qui disent, oh nan pas encore lui ! ! ! Eh bah sachez que je vous en veux pas et puis que vous êtes pas obligés de rester…
Sinon occupons-nous de ce qui vous amène ; alors dans ce tutorial nous allons voir comment pousser encore plus loin notre système de gunfight de la dernière fois (si vous n’avez pas lu mon tutorial sur ce système, je vous conseille d’aller y faire un tour même si je reprends tout le système et que je l’améliore ici il est quand même mieux de connaître celui d’origine…).
Ce système est un peu spécial, en effet il permet d’insuffler une bonne dose d’action à votre jeu. Il s’agit de permettre au joueur de pouvoir se déplacer dans une direction quelconque (là on ne touche pas au système d’origine, ni même à rien du tout d’ailleurs), mais il pourra par contre tirer dans une des quatre directions sans devoir se mettre face à l’ennemi… Je m’explique, par exemple le héros pourra être en train de fuir un ennemi, mais cela ne signifiera pas pour autant qu’il ne pourra pas lui tirer dessus, il pourra tirer derrière lui… Il pourra courir et tirer sur le côté pour esquiver les attaques ennemies. Vous le comprenez donc, cela ajoute pas mal de piment à notre ancien système.
Ici notre personnage se déplacera à l’aide des flèches directionnelles, tirera avec la touche majuscule, et visera avec les touches 0 ; 1 ; 3 ; et 5 du pavé numérique. Pourquoi ces touches me direz vous, eh bien simplement parce que les touches 2 ; 4 ; 6 ; 8 déplacent le personnage, elle ont une double fonction, elles servent de touche directionnelles, et de touches numériques, donc pas pratique pour notre système.
Avant de commencer, je tiens à vous prévenir qu’il n’y a pas beaucoup de choses à ajouter au système de base (quelques événement communs en plus et aussi des conditions), mais le plus dur est de créer des charsets adaptés. C’est à dire que vous devez avoir un charset où on retrouve : le héros se déplaçant dans les quatre directions en braquant son arme vers le haut, le héros se déplaçant dans les quatre directions en braquant son arme vers le bas, ensuite toujours le héros qui se déplace mais avec l’arme à droite, et enfin, la même chose mais avec l’arme vers la gauche…
Je vous entend déjà vous plaindre alors comme c’est mon jour de bonté je vous en poste un tout fait (d’accord c’est pas de la super qualité, je l’ai fait avec chara exe et je l’ai ensuite modifié moi même, z’avez pas le droit de rire).
http://images.imagehotel.net/?vngugplas6.pngVous pouvez vous en servir comme base pour vos persos à venir.
Voici donc les variables et interrupteurs dont vous allez avoir besoin ( les variables sont entre crochets et les interrupteurs entre parenthèses) :
Variables :
[Héros X] ; [Héros Y]
[Ennemi1 X] ; [Ennemi1 Y] ; [Vie ennemi1]
[Ennemi2 X] ; [Ennemi2 Y] ; [Vie ennemi2]
[Ennemi3 X] ; [Ennemi3 Y] ; [Vie ennemi3]
[Tir X] ; [Tir Y]
[Touche visée] ; [Touche tir]
[Direction tir]
Interrupteurs :
(Tir)
(Ennemi1 mort) ; (Ennemi2 mort) ; (Ennemi3 mort)
Comme vous avez pu le voir grâce aux variables et aux interrupteurs, il y aura donc trois ennemis.
Voilà pour les préparatifs, Passons maintenant à la partie script (tout en évènements bien sûr… Foi de Naked-Snake)
Attention… C’est parti ! Pour commencer créez un événement commun en processus parallèle (dans votre base de données, F8 pour aller plus vite, puis onglet évènements communs), comme nom mettez lui « Héros X, Y », ne cochez pas la case « Interrupteur de déclenchement en haut à droite de la fenêtre. Dans les commandes de cet événement mettez :
<>Attendre 0.1 sec (pour ne pas ralentir le jeu)
<> Modifier variable [héros X] = Héros coordonnée X (pour avoir la coordonnée X du héros, tout en bas de la fenêtre de la variable cochez événement)
<> Modifier variable [héros Y] = Héros coordonnée Y
Voilà pour le premier événement de notre système, c’était pas trop difficile nan, alors maintenant résumons : eh bien c’est simple, cet événement enregistre la position du héros sur la carte grâce à X et Y (X est correspond à la coordonnée sur l’axe horizontal et Y, sur l’axe vertical).
Attention soyez attentifs car à cet endroit, il y a un changement. Maintenant il va falloir créer un autre événement commun lui aussi en processus parallèle, sans interrupteur de déclenchement, nommez le « Touche direction tir » et dans les commandes mettez :
<>Appui d’une touche : [Touche visée] (dans la troisième page d’évènements, dedans, laissez coché l’option « Attendre jusqu’à ce qu’une touche soit pressée », puis sélectionnez la variable [Touche visée], ensuite cochez la case « touches numériques 0-9 »).
<>Condition : Si variable [Touche visée] = 10
<>Modifier variable [Direction tir] = 1 (rendez la variable [Direction tir] égale à 1)
<>Attendre 0.1sec
Sinon :
<>Condition : Si variable [Touche visée] = 11
<>Modifier variable [Direction tir] = 2
<>Attendre 0.1sec
Sinon :
<>Condition : Si variable [Touche visée] = 13
<>Modifier variable [Direction tir] = 3
<>Attendre 0.1sec
Sinon :
<>Condition : Si variable [Touche visée] = 15
<>Modifier variable [Direction Tir] = 4
<>Attendre0.1sec
Sinon :
Fin
Fin
Fin
Fin
Maintenant résumons : pour commencer on demande au joueur d’appuyer sur une des touches du pavé numériques, mais nous ne vérifierons par la suite que s’il appuie sur les touches 0 ; 1 ; 3 et 5 sur pavé numérique (nous le vérifions par le biais des conditions de cet événement, en fait nous regardons la valeur renvoyée par l’appui de la touche vers la variable touche visée, par exemple la touche 0 renvoie la valeur 10, la touche 1, la valeur 11, etc…). Lorsque le joueur presse la touche 0 par exemple, nous allons considérer qu’il tourne la ligne de mire de son personnage vers le bas, pour matérialiser cela, nous allons utiliser une variable appelée [Direction tir] où les directions seront les suivantes : la direction bas correspondra au nombre 1, la gauche au nombre 2, la droite au nombre 3, et le haut au nombre 4. Alors lorsque le joueur pressera une des touches 0 ; 1 ; 3 ou 5 du pavé numérique, nous modifierons la valeur de la variable [Direction tir] par la valeur correspondante de la direction. Voilà donc pour cet événement.
Créez ensuite un 3ème événement commun, toujours en processus parallèle, sans interrupteur de déclenchement. Il s’agit maintenant de l’événement qui va gérer l’apparence du héros (il n’est pas nécessaire de créer un événement comme celui-ci, mais pour les novices, je préfère faire comme ça, sinon si vous ne voulez pas faire comme suit eh bien, dans l’événement touche direction tir il vous suffit de rajouter lorsque vous avez rendu la variable [Direction tir] égale à la valeur correspondante à la touche appuyée, juste avant la commande attendre 0.1 sec, il faut mettre la commande changer l’apparence du héros).
Bien alors commençons :
<>Condition : Si variable [Direction tir] = 1
<>Modifier apparence du héros (mettez le charset lorsqu’il pointe son arme vers le bas)
Sinon :
<>Condition : Si variable [Direction tir] = 2
<>Modifier apparence du héros (mettez le charset lorsqu’il pointe son arme vers la gauche)
Sinon :
<>Condition : Si variable [Direction tir] = 3
<>Modifier apparence du héros (mettez le charset lorsqu’il pointe son arme vers la droite)
Sinon :
<>Condition : Si variable [Direction tir] = 4
<>Modifier apparence du héros (mettez le charset lorsqu’il pointe son arme vers le haut)
Sinon :
Fin
Fin
Fin
Fin
Voilà pour cet événement, alors pour résumer, eh bien c’est très simple, il s’agit de l’évènement qui va gérer l’apparence de notre personnage.
Passons ensuite à l’événement commun suivant : nommez le « Tir », pas d’interrupteur de déclenchement. Comme commandes mettez :
<>Demander l’appui d’une touche [Touche tir] (variable [Touche tir], option « attendre jusqu’à ce qu’une touche soit pressée » et cochez uniquement la touche majuscule)
<>Condition : Si variable [Touche tir] = 7
<>Modifier interrupteur (Tir) ON
<>Attendre 0.7 sec
Sinon :
Fin
Nous en finissons donc avec la partie des évènements communs. Mais résumons d’abord ce que fait celui-ci. Toujours rien de compliqué, il s’agit de l’événement qui détecte l’appui de la touche majuscule, et qui lance le tir, puis il faut attendre 0.7 sec avant de pouvoir tirer à nouveau (la commande attendre sert de « cadence de tir », vous pouvez la modifier à votre guise).
Maintenant créez trois évènements sur la carte, vous vous en doutez, ce sont les ennemis, dans ces évènements, créez deux pages (onglet « nouvelle page » à côté du nom de l’événement).
Dans la première page, dans les conditions de l’événement (à gauche de la fenêtre) ne mettez rien, en condition de déclenchement mettez « contact événement/héros », dans mouvement : marche vers le héros, fréquence : huit, vitesse : comme vous voulez.
Puis dans les commandes, mettez ce que vous voulez, ce sera lorsque l’ennemi vous touchera, donc lorsqu’il vous blessera (n’oubliez pas de diminuer les points de vie du héros, et surtout, mettez lui une apparence d’ennemi, c’est mieux quand même).
Ensuite dans la deuxième page mettez seulement dans les conditions de l’événement que l’interrupteur (ennemi 1, 2, ou 3) selon l’ennemi, doit être activé ; ne mettez aucun mouvement, aucune apparence (ou alors mettez un cadavre), et en déclencheur : « presser une touche », de toute façon cela n’a pas d’importance, cette page s’activera au moment où l’ennemi sera mort.
Laissez la page des commandes vierges.
Voilà pour les ennemis (n’oubliez pas de faire trois évènements, 1 par ennemi, et de créer 2 pages dans chaque événement d’ennemi), pour résumer, ils vont se diriger vers le héros, puis lorsqu’ils le toucheront, vous perdrez des PV, par contre lorsque vous les aurez tués, ils ne bougeront plus, ils seront inactifs, donc morts.