❤ 0 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…
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 :
1
2
3
| <>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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| <>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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <>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 :
1
2
3
4
5
6
7
8
| <>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.
Créez ensuite un événement sur chaque carte où se trouvent vos ennemis, dans les conditions d’évènements ne mettez rien, comme déclencheur mettez « processus parallèle » et dans les commandes mettez :
1
2
3
4
5
6
| <>Modifier variable [Ennemi1 X] = coordonnée X de l’événement Ennemi1
<>Modifier variable [Ennemi1 Y] = coordonnée Y de l’événement Ennemi1
<>Modifier variable [Ennemi2 X] = coordonnée X de l’événement Ennemi2
<>Modifier variable [Ennemi2 Y] = coordonnée Y de l’événement Ennemi2
<>Modifier variable [Ennemi3 X] = coordonnée X de l’événement Ennemi3
<>Modifier variable [Ennemi3 Y] = coordonnée Y de l’événement Ennemi3 |
Voilà donc pour l’événement qui enregistre la positions des ennemis.
Passons maintenant à l’événement qui servira de tir créez donc un événement sur chaque carte que vous nommerez « tir », et dans les conditions de l’événement mettez que l’interrupteur (Tir) doit être activé, dans les mouvements mettez « Ne bouge pas », en vitesse : « très rapide », en déclencheur : « Processus parallèle », en position : « Au dessus du héros ».
Mettez dans les commandes :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| <>Modifier la position d’un événement : cet événement X [Héros X], Y [Héros Y]
<>Jouer un effet sonore ( Conseil du chef : jouez un effet sonore de tir si vous voulez)
<>Condition : Si variable [Direction Tir] = 1
<>Déplacer cet événement : Bas x 8
<>Attendre 0.4 sec
<>Modifier interrupteur (Tir) OFF
Sinon :
<>Condition : Si variable [Direction tir] = 2
<>Déplacer cet événement : Gauche x 8
<>Attendre 0.4 sec
<>Modifier interrupteur (Tir) OFF
Sinon :
<>Condition : Si variable [Direction tir] = 3
<>Déplacer cet événement : Droite x 8
<>Attendre 0.4 sec
<>Modifier interrupteur (Tir) OFF
Sinon :
<>Condition : Si variable [Direction tir] = 4
<>Déplacer cet événement : Haut x 8
<>Attendre 0.4 sec
<>Modifier interrupteur (Tir) OFF
Sinon :
Fin
Fin
Fin
Fin |
Résumons donc notre évènement de tir, c’est simple, lorsque l’interrupteur (Tir) est activé, donc lorsqu’on demande au tir de se déclencher, le tir se déplace de 8 cases dans la direction où le personnage vise (et non pas dans la direction où le personnage marche comme dans l’ancien système) ; on attend 0.4 secondes, afin d’attendre le moment où le tir arrive au bout de sa course pour l’effacer en désactivant l’interrupteur (Tir).
Maintenant créons l’évènement qui enregistrera la position du tir (1 sur chaque carte), donc avec la condition d’événement (à gauche de la fenêtre je le rappelle) que l’interrupteur tir soit activé, pas d’apparence, aucun mouvement, et en processus parallèle.
En commandes mettez :
1
2
| <>Modifier variable [Tir X] = coordonnée X de l’évènement Tir
<>Modifier variable [Tir Y] = coordonnée Y de l’évènement Tir |
Voilà c’est terminé.
Maintenant nous allons voir l’évènement qui détectera le passage du tir sur un ennemi, donc lorsque vous lui tirerez dessus. Créez donc un événement en processus parallèle sur chaque carte où se trouve votre système, sans conditions d’événement, sans mouvement, sans apparence.
Dans les commandes ajoutez :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
| <>Condition : Si l’interrupteur (Tir) est activé
<>Condition : Si la variable [Ennemi1 X] = [Tir X]
<>Condition : Si la variable [Ennemi1 Y] = [Tir Y]
<>Modifier interrupteur (Tir) OFF
<>Condition : Si l’interrupteur (Ennemi1 mort) est désactivé
<>Modifier variable [Vie ennemi1] – 1
<>Condition : Si la variable [Vie Ennemi1] <= (inférieure ou égale à) 0
<>Effet sonore de mort de l’ennemi
<>Modifier interrupteur (Ennemi1 mort) ON
Sinon :
Ici vous pouvez mettre l’animation lorsque l’ennemi est blessé
Fin
Sinon :
Fin
Sinon :
Fin
Sinon :
Fin
Sinon :
Fin
<>Condition : Si l’interrupteur (Tir) est activé
<>Condition : Si la variable [Ennemi2 X] = [Tir X]
<>Condition : Si la variable [Ennemi2 Y] = [Tir Y]
<>Modifier interrupteur (Tir) OFF
<>Condition : Si l’interrupteur (Ennemi2 mort) est désactivé
<>Modifier variable [Vie ennemi2] – 1
<>Condition : Si la variable [Vie Ennemi2] <= (inférieure ou égale à) 0
<>Effet sonore de mort de l’ennemi
<>Modifier interrupteur (Ennemi2 mort) ON
Sinon :
Ici vous pouvez mettre l’animation lorsque l’ennemi est blessé
Fin
Sinon :
Fin
Sinon :
Fin
Sinon :
Fin
Sinon :
Fin
<>Condition : Si l’interrupteur (Tir) est activé
<>Condition : Si la variable [Ennemi3 X] = [Tir X]
<>Condition : Si la variable [Ennemi3 Y] = [Tir Y]
<>Modifier interrupteur (Tir) OFF
<>Condition : Si l’interrupteur (Ennemi3 mort) est désactivé
<>Modifier variable [Vie ennemi3] – 1
<>Condition : Si la variable [Vie Ennemi3] <= (inférieure ou égale à) 0
<>Effet sonore de mort de l’ennemi
<>Modifier interrupteur (Ennemi3 mort) ON
Sinon :
Ici vous pouvez mettre l’animation lorsque l’ennemi est blessé
Fin
Sinon :
Fin
Sinon :
Fin
Sinon :
Fin
Sinon :
Fin |
Voilà pour notre dernier événement, donc résumons, lorsque le tir est activé, on regarde si le tir passe sur un ennemi, si c’est le cas, il faut vérifier s’il est vivant avant de le blesser, si c’est le cas, on le blesse, et on vérifie à ce moment là si on le tue, si c’est le cas, on active l’interrupteur (Ennemi mort) correspondant.
Voilà vous en avez terminé avec ce tutorial, mais surtout, surtout, surtout n’oubliez pas de mettre dans l’événement qui téléporte votre personnage sur la carte où se trouve votre système, les commandes suivantes :
1
2
3
4
5
6
| <>Modifier interrupteur (Ennemi1 mort) OFF (ce serait con d’arriver sur une carte où les ennemis sont déjà morts)
<>Modifier interrupteur (Ennemi2 mort) OFF
<>Modifier interrupteur (Ennemi3 mort) OFF
<>Modifier variable [Vie ennemi1] = 5 (nous allons donner 5 points de vie aux ennemis)
<>Modifier variable [Vie ennemi2] = 5
<>Modifier variable [Vie ennemi3] = 5 |
Maintenant que tout est terminé, il ne vous reste plus qu’à tester la bête, en tout cas je me suis encore bien amusé à vous écrire ce tuto, (je me suis aussi bien creusé la tête comme d’hab), s’il y a un problème faites moi signe, vous êtes aussi libre de l’améliorer, par exemple ajouter des ennemis, mettre un décompte de munitions (peut être un tuto à venir là dessus, j’y réfléchirais). Sur ce bon making !
|