Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: a-MAZE-ing / Sorties: Les Chroniques de Katura - TAO (...) / Projet: Nouvelle version de Evershade (...) / Sorties: Les Chroniques de Katura - TAO (...) / Sorties: Star Trek: Glorious Wolf / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

421 connectés actuellement

30226580 visiteurs
depuis l'ouverture

7832 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Eclipso

New RPG Maker

Tashiroworld

Alex d'Or

Leo-Games

Tous nos partenaires

Devenir
partenaire



Utiliser un boomerang sur la map

Gestion d'un objet qui fait un aller-retour vers le joueur sur la carte. Utile pour les A-RPG ou des puzzles.

Ecrit par RPG Fusion le 25/03/2014


❤ 0

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.

Ce tutoriel a été conçu avec RPG Maker 2003 mais est valable pour les autres RM avec quelques adaptations, à part VX qui ne gère pas les terrains nativement.

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 :

Citation:

<>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.

Citation:

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

Citation:

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

Citation:

<>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
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
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
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
Fin



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 :

Citation:

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

Citation:

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

Citation:

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

Citation:

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



Aller, courage, c´est bientot terminé image

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 :

Citation:

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

Citation:

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

Citation:

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



freazyx - posté le 17/06/2014 à 14:04:33 (1341 messages postés)

❤ 0

boss

RPG Fusion tu devrai mettre un lien de téléchargement pour les gros fainéants like me :clindoeil3

mon projet : ici | twitter | Une dictature, mais une dictature juste... Votez Bocaux Haram !


RPG Fusion - posté le 04/08/2014 à 10:12:25 (381 messages postés)

❤ 0

Je fus RPG Fusion jadis

Ah ouais, je ferais une démo, ça sera utile effectivement ^^

Suis Shaper sur Twitter ! - Rejoins le serveur discord de Shaper !

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