RPG Maker Détente
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.



 
RechercherDernières imagesPortailAccueilAccueilForumPraline au mielS'enregistrerConnexion

Le Deal du moment :
SSD interne Crucial BX500 2,5″ SATA – 500 ...
Voir le deal
29.99 €

 

 Système de boomerang

Aller en bas 
AuteurMessage
RPG Fusion




Messages : 75


Système de boomerang Empty
MessageSujet: Système de boomerang   Système de boomerang Icon_minitimeMar 18 Mar - 22:59

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.
<>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
<>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 :
<>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 :
<>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 :
<>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 :
<>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 :
<>Variable[07: Distance] +, 1
<>Attendre 0.0 Sec
<>Attendre 0.0 Sec
<>Attendre 0.0 Sec

Aller, courage, c´est bientot terminé Gros sourire

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 :
<>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 :
<>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 :
<>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 !
Revenir en haut Aller en bas
 
Système de boomerang
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [RESOLU] [VX ACE] Système de combat
» Sapphire action systeme
» Systeme pour une touche précise
» [RPG Maker VX ACE] Aide pour système de combat
» Traduire un super système (script) en français

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker Détente :: Entrepôt :: Tutos :: Tutos 2k3-
Sauter vers: