Attention tutoriel en bloc ! Dur de s'y retrouver mais pourtant simple lorsque l'on comprend =).
Le titre du tutoriel vous laisse perplexe il me semble si ? Oui n'ayez crainte je vous explique tout de suite de quoi il s'agit mais soyez attentif ce ne sera pas toujours aussi simple à comprendre. Tout d'abord, le tutoriel n'aurai pas éclot si MirainoHikari n'avait pas créer le script d'en dessous. Si le tutoriel est marqué d'un [ + script], c'est qu'il en aura besoin. En effet, dans le tutoriel, vous apprendrez à courir derrière les poules
si vous vous en approchez trop =O ! Aucune donnée variable n'indique le nombre de carreau entre tel et tel objet, aucune opération ni rien entre les variables X et Y !
Enfin si, c'est réalisable si l'on place une quinzaine d'évent aux alentours qui se déplacent en même temps que l'objet en lui même... Mais cela engendrai de nombreux bugs vu l'inefficacité de la chose... Vous êtes perdus ? Non bien sur que non =). Donc, mon chère ami Hikari (ça rime <3) m'avait concocté un tout petit script il y a de cela un bon mois ! Ce script permet tout simplement de calculer la distance de deux événements en carreaux =O. Il tient en quelques lignes et est simple à comprendre :
- Code:
-
#Calculer la distance entre 2 events - Par MirainoHikari - http://rpg-maker-vx.bbactif.com/index.htm
class Game_Interpreter
def distance(event1,event2)
return Math.hypot((event1.x - event2.x), (event1.y - event2.y))
end
end
Je vous rappelle que nous somme sur "tutoriels pour vx", "pour vx", le script est indigeste auprès des autres (jusqu'à preuve du contraire) =/.
- Comment il marche ?Tout d'abord, comme tous les scripts ou du moins la grande majorité, il faut le placer au dessus de Main. Donc nouveau script blabla et hop, on colle le tout petit nouveau.
Comme vous l'avez compris, il calcule la distance de deux événements, maintenant vous ne savez pas encore comment on va pouvoir utiliser le script. Eh bah vous le saurez bientôt maiiiis, pas encore =O. Un tuto n'est pas un tuto s'il n'a pas son petit scénario qui va avec.
Imaginons que vous faites un nouveau Zelda et que vous voulez reprendre le passage de Link Ocarina of Time, lorsqu'il doit retrouver les... 10 cocottes ? Vous vous souvenez que lorsque vous vous approchiez, la poule allait de plus en plus vite et que c'était parfois difficile de la rattraper. C'est donc dorénavant possible avec ce petit script.
Pour commencer, créer votre jeune femme allergique aux plumes, pas trente milles solutions cependant vous risquez fort de vous perdre c'est pourquoi je vais tenter de vous expliquer via des screens ce qu'il faut faire...
Lisez bien les commentaires, ils expliquent plus ou moins mes actions. Vous remarquez que j'ai écrit "si vous attrapez les poules de nuits, elles serons plus simples à attraper", n'y faite pas attention, cela ne comptera que chez moi puisque j'ai un système nuit/jour par variable qui peut donc de ce fait s'utiliser =O. Maintenant qu'on à la fermière, on va faire des poules. Rien de plus simple encore une fois, créez un évent avec une apparence de poule et allons-y pour le remplissage =O. Mes poules à moi ont 3pages. Les votre en aurons 2 puisqu'elles n'utilise pas le temps, c'est juste histoire que vous ne vous affoliez pas à la vue de ma 3eme page quoi =/.
Dés l'entrée en matière, il va falloir appeler un script qui est celui-ci :
- Code:
-
perso = get_character(-1) # -1 = Joueur
poule = get_character(0) # 0 = courrant
@distP = (distance(poule,perso)).to_i
Avant de vous expliquez en détail ce que ça veut dire, sachez que pour appeler un script il faut se rendre à la page 3. Tout d'abord sachez qu'il y a des valeurs que vous pouvez modifier. Carrément tout ou presque. "perso" et "poule" sont deux noms donnés aux characters qu'ils définissent (après le "= get_character(" ). Les characters qu'ils définissent sont marqués entre les parenthèses. Comme je l'ai noté en
#commentaire, -1 est égal au joueur et 0 définit le character même d'où provient le code (donc la poule elle même pour ce cas là). Vous me suivez ? Bon, passons à la dernière ligne, si tout va bien vous devriez avoir tout compris et même plus lire la suite du tutoriel mais bon, pour vous qui me suivez toujours je continue (meuh non je rigole
, c'est toujours bien de s'intéresser jusqu'à la fin). Donc la dernière ligne donne une formule : @distP est égal à la distance de Poule et Perso d'après le script qu'il y a au dessus de Main. Vous pouvez changer le nom de cette formule, par exemple la nommer @distancePersonnagePoule, c'est comme vous le sentez mais va falloir garder en tête ce que vous écrivez car on passe à la suite. Enfin d'abord je m'assure encore une fois que vous n'êtes pas perdu ? 1, 2... 1, 2 ?
Bref, maintenant que vous connaissez le code on va pouvoir le mettre en pratique. Parce que déduire la distance de deux événement c'est bien mais il faut encore pouvoir l'utiliser ! Il faut savoir que le héros se déplace toujours, la poule aussi. Donc il faut sans cesse recalculer la distance des deux évents. De ce fait, vous mettrez votre poule en
Processus parallèle, oui, vous avez bien entendu, en processus parallèle ! Inutile de vous rappeler que c'est une poule mais enfin... Une fois ceci fait, créez une condition qui sera :
Si "script :
@distP <= 1"
Pour celui qui ne sais pas, une condition "script" existe dans l'onglet 4, tout en bas. Cette condition dit en gros "Si @distP est plus petit ou égal à 1". En plus gros encore : Si la distance de la poule et du héros est égal à 1 ou moins" ! @distP est à remplacer par ce que vous avez mis vous dans l'appel de script hein =O. Je pense que vous avez compris maintenant ? Donc maintenant que vous avez mis la condition, vous pouvez mettre un message du genre "attrapé !". Un bruit et, pourquoi pas, un changement d'image du character du héros (comme je l'ai fait). Après avoir bien remplis votre condition il est temps d'en faire une autre. Vous refaite la manip', mais cette fois si avec 5 cases d'écart dirons-nous. Comme ceci :
Vous savez ce que j'ai fait je suppose ? Pas grand chose de bien difficile =/. On passe alors à la suite, 2cases de distance, la poule s'affole et court plus vite. Mais attention ! Elle court plus vite mais est aussi plus maligne car elle a peur. Du coup, on lui ajoute un system pour pas quelle se bloque dans de vulgaires murs et coin... Enfin on en fait pas trop non plus ! Commencez par créer un variable "hasard" qui agira comme un interrupteur booélien : vous lui assignez une valeur entre 1 et 2. Une condition (avec le "sinon" qui va avec) "si la valeur blabla est 1" où vous insérerez "poule regarde le héros puis fait un pas vers sa droite" et dans le "sinon" vous faite le contraire. En clair elle peut se retrouver blocker ou le contraire selon sa chance =O.
BON ! Eh bah c'est finit j'ai bien l'impression =O. Il manque une démo qui vous aiderai bien j'ai l'impression mais j'ai la flemme de la faire (j'ai passer quand même une heure sur le tuto, stop quoi ><) maintenant...
J'espère que le script vous sera utile ainsi que ma merveilleuse explication avec plein de couleurs xD. Sur ce, bonne soirée
.