E-magination
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


~ S'évader de la banalité... Et entrer dans l'imaginaire ! ~
 
AccueilGuelnika, le site de E-m !ChatS'enregistrerConnexion
-30%
Le deal à ne pas rater :
LEGO Icons 10318 – Le Concorde à 139,99€
139.99 € 198.99 €
Voir le deal

 

 Système du boomerang

Aller en bas 
3 participants
AuteurMessage
RPG Fusion
RTP de base Lv 2
RTP de base Lv 2
RPG Fusion


Nombre de messages : 34
Age : 26

Système du boomerang Empty
MessageSujet: Système du boomerang   Système du boomerang Icon_minitimeMar 18 Mar 2014, 23:03

Salut à tous !
Voici mon tout premier tutoriel assez complexe mais qui pourra vous etre utile.
Ce tuto, c´est donc le système du boomerang mais si vous comprenez le système, vous pourrez facilement faire celui de la bombe et celui de l´arc.
Sur ce, commençons.

Nous allons organiser notre système en 1 seul évènement qui lui, sera composé de 2 pages.
Tout au long de ce tutoriels, je vais principalement vous expliquer les commandes puis je vous donnerez des morceaux de codes.
Ca sera à vous de recomposer le système. Mais il n´y aura rien de compliqué pour ça.

Déjà, on peut commencer par dire que la première page va nous servir à la détection de la touche pour utiliser le boomerang.
Donc, dans cette page, on va demander l´appui d´une touche, faire une condition pour savoir si le joueur appui sur la touche demandé et enfin, on va activer un interrupteur qui va nous servir pour la deuxième page.
Voici le code de la page :
Code:

<>Demander l´appui d´une touche [05: Touche boomerang]
<>Si variable [05: Touche boomerang] =, 11
//Dans ce tuto, la touche du boomerang est la touche numérique "1"
<>Interrupteur [01: Boomerang Use] sur ON

Ceci conclut la première page de notre évènement. Il va par la logique que cet page doit etre en processus parallèle, sous le héros et sans apparence.

Bon, nous allons nous attaquer à la deuxième page.
C´est là que notre système devient complexe. Alors soyez attentif et lisez bien ce qui va suivre.
Voici ce que nous allons faire tout au long de cette page :
Nous allons d´abord attribuer 2 variables "Héros X" et "HérosY" qui seront égales aux coordonnées X et Y du héros.
Code:

<>Variable [01: Héros X] =, Héros coord. X
<>Variable [02: Héros Y] =, Héros coord. Y

Ensuite, on met une autre variable qui calcule la direction du héros
Code:

<>Variable [06: Direction Héros] =, Héros Direction
On active la transparence du héros, on le fais attendre de tel à ce qu´il ne bouge pas pendant qu´il lance le boomerang et selon sa direction, on affiche l´animation du lancé de boomerang.
Voici ce que ça va nous donner :
Code:

<>Transparence du héros: Activée
<>Déplacer/Modifier: Héros, Attend un peu
<>Si variable [06: Direction héros] 8
<>Variable [02: Héros Y] -, 1
<>Afficher une animation: Boomerang Haut
<>Déplacer/Modifier: Héros, Regarde en haut
<>
: Sinon
<>
Fin
<>Si variable [06: Direction héros] 6
<>Variable [01: Héros X] +, 1
<>Afficher une animation: Boomerang Droite
<>Déplacer/Modifier: Héros, Regarde à droite
<>
: Sinon
<>
Fin
<>Si variable [06: Direction héros] 2
<>Variable [02: Héros Y] +, 1
<>Afficher une animation: Boomerang Bas
<>Dépacer/Modifier: Héros, Regarde en bas
<>
: Sinon
<>
Fin
<>Si variable [06: Direction héros] 4
<>Variable [01: Héros X] -, 1
<>Afficher une animation: Boomerang Gauche
<>Déplacer/Modifier: Héros, Regarde à gauche

Voilà... enfin, c´est loin d´etre terminé hein ^^
Donc, une fois ceci fait, on va attendre 0.3 secondes car c´est le temps de l´animation, puis on va déplacer le héros de 0 case ^^ En fait, comme on l´avait fait attendre le temps qu´il lance le boomerang, on doit le mettre une commande "Déplacer: héros" sans faire de déplacement. Et celà va restaurer les mouvements de Link :
Code:

<>Attendre 0.3 Sec.
<>Déplacer/Modifier: Héros
<>Transparence du héros: Désactivée

Maintenant, on modifie la position de cet évènement, soit le boomerang afin que son déplacement commence à partir du héros.
Donc il suffit simplement de modifier la position de l´évènement à partir des coordonnées actuelle du héros. (En gros, sur le héros)
Et on place une étiquette en office de boucle. Comme ça, dès que ça nous arrangera, on retournera à l´étiquette :
Code:

<>Déplacer pos.évènement:Cet évènement, X[01], Y[02] // "Héros X" et "Héros Y"
<>Etiquette 2
On va mettre une condition pour savoir si le boomerang doit revenir ou pas. Donc à cet endroit de notre évènement, on commence seulement le déplacement. Ce qui nous amène à OFF :
Code:

<>Si Interrupteur[02: Boomerang revient] sur OFF

Donc là, le boomerang commence son déplacement, et on fait 1 pas en avant afin que le boomerang parcours le trajet dans la direction voulut.
Puis, on ajoute une nouvelle variable qui va gérer la distance. Donc juste après le pas en avant, on ajoute 1 à la variable distance ce qui va signifier que lorsque le boomerang fait un pas en avant, on ajoute 1 à la variable distance.
Et là, il est important de mettre trois fois 0.0 Sec. !
Pourquoi ? Alors ça, j´en sais trop rien. Mon système à été corrigé mais dans le système corrigé, il fallait 3 fois 0.0 Sec. sinon le boomerang est très lents lors de son déplacement.
Depuis les explications précédentes, notre code donne ça :
Code:

<>Variable[07: Distance] +, 1
<>Attendre 0.0 Sec
<>Attendre 0.0 Sec
<>Attendre 0.0 Sec

Aller, courage, c´est bientot terminé

Nous allons attribuer 2 variables "Boomerang X" et "Boomerang Y" que l´on va rendre égales aux coordonnées de cet évènement.
Puis on va stocker l´ID du boomerang pour gérer les collisions.
Suite à quoi, vous irez dans la Base de Donnée, onglet "Terrains" et vous allez faire un terrain spécialement pour les collisions.
Nous retournerons dans notre évènement, et nous allons faire une condition avec la vairble ID Boomerang pour savoir si on est dans une collision ou non :
Code:

<>Variable: [03: Boomerang X] =, Cet évènement coord. X
<>Variable: [04: Boomerang Y] =, Cet évènement coord. Y
<>Stocker l´ID d´un terrain : X[03: Boomeran X] Y[04: Boomerang Y], dans la variable [08: ID Boomerang]
//Si le terrain est égal à 2, alors il y a collision
<>Si variable [08: ID Boomerang] 2
//On active un interrupteur pour que le boomerang revienne
<>Interrupteur[02: Boomerang Revient] activés
//Le boomerang doit revenir donc on revient à l´étiquette 2
<>Aller à l´étiquette 2
<>
: Sinon

Donc là, nous allons calculer la distance que parcours le boomerang. Une fois 6 carreaux parcourut, on fait revenir le boomerang (Par l´étiquette 2 encore une fois)
Bon, encore un autre problème qui provient notamment des 3 fois Attendre 0.0 Sec, on doit mettre le double de la distance sinon, ça fait deux fois moins. Vous suivez ?
Si non, alors tout simplement, vous choisissez le nombre de carreaux que vous voulez que votre boomerang parcours et vous le multipliez par 2.
En gros, moi je veux 6 carreaux, donc je dois mettre la condition à 12 :
Code:

<>Si variable[08: Distance] 12
<>Interrupteur: [02: Boomerang revient] Activé
<>Aller à l´étiquette 2
<>
: Sinon
//Sinon, on retourne aussi à l´étiquette 2
<>Aller à l´étiquette 2
<>
Fin
<>
Fin
<>
: Sinon
//Voici maintenant l´étiquette 3

L´étiquette 3 nous sert de retour au boomerang.
Donc nous allons déplacer cet évènement "Un pas vers le héros" le tout en mode fantome pour que le boomerang ne soit pas géné des collisions.
On attend ensuite deux fois 0.0 Sec et on remet à jour les coordonnées X et Y du héros et pareil pour celles du boomerang.
Ensuite, on fait une condition, si les coordonnées du héros sont égales aux coordonnées du bommerang, alors on fait disparaitre cet évènement en le téléportant au carreau 000,000), on remet la variable distance à 0 et on désactive les interrupteurs qui étaient activés :
Code:

<>Etiquette 3
<>Déplacer/Modifier: Cet évènement, Mode fantome ON, Pas vers le héros,
<>Attendre 0.0 Sec
<>Attendre 0.0 Sec
<>Variable: [03:Boomerang X] =, Cet évènement coord. X
<>Variable: [04:Boomerang Y] =, Cet évènement coord. Y
<>Variable: [01:Héros X] =, Héros coord. X
<>Variable: [02:Héros Y] =, Héros coord. Y
<>Si variable [01: Héros X] V[03: Boomerang X] =
<>Si variable [02: Héros Y] V[04: Boomerang Y] =
<>Modifier pos.évènement: Cet évènement, (000.000)
<>Variable[08: Distance] =, 0
//On désactive tout les interrupteurs activé
<>Interrupteur[02: Boomerang Revient] Désactivé
<>Interrupteur[01: Boomerang Use] Désacitvé
<>
:Sinon
<>Aller à l´étiquette 3
<>
: Sinon
<>
Fin
: Sinon
<>
Fin

Voilà, ce long et interminable évènement est terminé.
Pour rappel, cet évènement devait etre en processus parallèle, au meme niveau que le héros avec l´apperence du boomerang, et faite tourner cet évènement sur lui meme aussi.
Ca animera son déplacement.

Et c´est aussi la fin de ce tutoriel.
Je remercie grandement OddClock qui a corrigé le système qui l´a aussi un peu amélioré.
Merci à lui et à vous. A très bientot pour un prochain tutoriel !


Dernière édition par RPG Fusion le Lun 24 Mar 2014, 10:40, édité 1 fois
Revenir en haut Aller en bas
Relm
---Fantôme--- Lv 0
Relm


Nombre de messages : 40942
Age : 33

Système du boomerang Empty
MessageSujet: Re: Système du boomerang   Système du boomerang Icon_minitimeMer 19 Mar 2014, 00:10

Merci ! cactus smile

Pour améliorer la lisibilité, tu devrais mettre tous tes scripts dans une balise "code". Wink

Aussi, j'imagine que sur 2k3, ton boomerang revient sur le héros en se déplaçant seulement dans les 4 directions et pas en diagonale... ça fait pas bizarre ?

____________
Alex RE a écrit:
C'est comme utiliser une hache pour trancher du pain. Je suis peut-être trop vieux pour ça.
Revenir en haut Aller en bas
AlexRE
Admin trop trizo Lv 65
Admin trop trizo Lv 65
AlexRE


Nombre de messages : 29934
Age : 37

Système du boomerang Empty
MessageSujet: Re: Système du boomerang   Système du boomerang Icon_minitimeMer 19 Mar 2014, 00:27

Merci ! cactus smile

Il faudrait peut-être nous filer une démo à télécharger, non ?

____________
Relm a écrit:
Merci pour la confirmation Gary et fuck my life.
Revenir en haut Aller en bas
http://www.alexzone.net
RPG Fusion
RTP de base Lv 2
RTP de base Lv 2
RPG Fusion


Nombre de messages : 34
Age : 26

Système du boomerang Empty
MessageSujet: Re: Système du boomerang   Système du boomerang Icon_minitimeMer 19 Mar 2014, 07:39

Relm : Je sais que je devrais mettre tout sur une balise code. Ca sera beaucoup mieux. Donc je le ferais cet après midi Wink
Et non, ça ne fait pas trop bizarre. Je crois meme que dans Zelda Minish Cap, le boomerang ne revient dans les 4 directions

Alex RoiEsper : C´est prévu hein ^^
Mais ça fait parti de mon projet en cours. Ce projet consiste à faire plein de tutoriel en démo.


Mais comme ce tutoriel manque vraiment, je me suis dit que j´allait e faire part.

Et bientot, je ferais le système de l´arc et le système des bombes. Mais pas maintenant en tout cas ^^
Parce que j´ai quand meme mis 1h30 à rédiger ce tuto là
Revenir en haut Aller en bas
RPG Fusion
RTP de base Lv 2
RTP de base Lv 2
RPG Fusion


Nombre de messages : 34
Age : 26

Système du boomerang Empty
MessageSujet: Re: Système du boomerang   Système du boomerang Icon_minitimeLun 24 Mar 2014, 10:41

UPDATE : Tutoriel modifié. Je vous ai rajouté les balises de code pour une meilleur compréhension Wink
Revenir en haut Aller en bas
Contenu sponsorisé





Système du boomerang Empty
MessageSujet: Re: Système du boomerang   Système du boomerang Icon_minitime

Revenir en haut Aller en bas
 
Système du boomerang
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
E-magination :: ~ Forums d'enrichissement ~ :: Apprentissage et partage :: RPG Maker 2K & 2K3 :: Tutoriels-
Sauter vers: