Oniromancie: Tutoriels - Système du boomerang


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

News: Concours des Alex d'Or 2017-18: (...) / News: MegaMaker : créez votre propre (...) / News: Test de Tinker Quarry / Sorties: Leave the Room / Jeux: Leave the Room /

Chat  (17 connectés)

Bienvenue
visiteur !






publicité RPG Maker!

Statistiques

Liste des
membres


Contact

52 connectés actuellement

9179788 visiteurs
depuis l'ouverture

863 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

Thérapie-RMVX

Skaaz - Création de MMORP

RPG Maker Fr

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





Système du boomerang
Ecrit par RPG Fusion

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 :
<>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é <IMG SRC="

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 !


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

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. (357 messages postés)

Tout programmer soit même, c'est mieux

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

Illumnia (PHP/HTML/CSS)

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

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis