Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

News: Les actualités de fin d'année / Jeux: Glixel en version complète / Jeux: Izac 1 / News: Des jeux d'hiver sous la couette / Scripts: Système de vol pour RPG Maker (...) / Chat

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

231 connectés actuellement

30834860 visiteurs
depuis l'ouverture

2127 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Le Comptoir Du clickeur

New RPG Maker

Kingdom Ultimate

Le Temple de Valor

Tous nos partenaires

Devenir
partenaire



Tir de projectile pour A-RPG Partie 2 : rendre la visée indépendante de la direction

Pour pousser encore plus loin l'ancien système de combat au pistolet. Permet de se déplacer et de tirer indépendament de la direction dans laquelle vous vous déplacez.

Ecrit par Naked-Snake le 20/08/2007


❤ 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 :

Portion de code : Tout sélectionner

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 :

Portion de code : Tout sélectionner

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 :

Portion de code : Tout sélectionner

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 :

Portion de code : Tout sélectionner

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 :

Portion de code : Tout sélectionner

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 :

Portion de code : Tout sélectionner

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 :

Portion de code : Tout sélectionner

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 :

Portion de code : Tout sélectionner

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 :

Portion de code : Tout sélectionner

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 ! image



kilam1110 - posté le 03/01/2009 à 19:25:55 (9159 messages postés)

❤ 0

Sa peut pas marcher avec rm2k pck y a pas les touche majuscules, 1 3 5 ...etc

New RPG Maker - Forum traitant du logiciel RPG Maker tout en français ! | SURVIVE V2.5 - Dégommez du zombie !


red-shooting-star - posté le 15/02/2009 à 12:38:02 (30 messages postés)

❤ 0

T'es trop fort Naked Snake, tous tes tutos sont extra pour les survival horrors ou encore les Metal Gear (d'où ton pseudo je suppose ?^^)
Sans toi mon projet ne serais que poussière, alors comme quoi les jeux créés par les makers (mis à part certains) ne sont en réalités par l'oeuvre d'une seule personne mais aussi de tous les créateurs de scripts, tutorials et autres ! Thanks !

PS- Zesirb, je suis sûre qu'on peut adapter il faut simplement faire preuve de jugeote ^^


Metroid_Prime - posté le 24/02/2009 à 14:50:34 (193 messages postés)

❤ 0

J'ai testé ton tuto et il fonctionne à merveille!

Mais j'ai voulu essayé de faire la même chose sans être obligé de viser.
Donc j'ai mis la variable [Touche viser]=17
(c'est la touche pavé 7)
variable[DirectionTir]=7

et dans l'event "Tir", j'ai mis

Si [Direction Tir]=7
alors jouez bruit machin
Déplacer: cet événement: Tournez le dos au héros, 8*pas en avant.
atendre0.4s
interrupteur "Tir" désactivé.


Et ça marche mais qu'à moitié. En effet, ça fonction quand mon perso est dirigé vers le haut et le bas mais pas vers la droite et la gauche.

Voilà! Enfin encore merci!!:p


Heavy Rain - posté le 12/06/2010 à 18:36:45 (1053 messages postés)

❤ 0

Poutit screen ? Ou je lis pas le tuto :p


leococodu34 - posté le 11/02/2011 à 07:38:02 (5 messages postés)

❤ 0

vous êtes debiles ou quoi? sous rmxp vous êtes pas obligés de mettre des touches numériques! on peut viser avec: a w z !:sriden


azzurox - posté le 14/10/2011 à 22:45:05 (5596 messages postés)

❤ 0

Il y aurait moyen de récupérer l'image?

Mon émission Youtube, le Zap Anim : https://www.youtube.com/channel/UCtXZuqba_EAP8rXP21m8Yvg

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers