~ S'évader de la banalité... Et entrer dans l'imaginaire ! ~
 
AccueilGuelnika, le site de E-m !S'enregistrerConnexion

Répondre au sujet
Partagez | 
 

 [Tutoriel + Script] Retrouver et capturer [x] (exemple)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
fabY
RTP de base Lv 1
RTP de base Lv 1
avatar

Nombre de messages : 10
Age : 22

MessageSujet: [Tutoriel + Script] Retrouver et capturer [x] (exemple)   Mar 20 Jan 2009, 17:58

Hihi, bonjour à vous. fufu
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 cheers . 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 ! Or, c'est irréalisable sans script (en évent si vous préférez). Non non ne tentez pas de me prouver le contraire je vous affirme que c'est irréalisable, 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
©MirainoHikari - rpg-maker-vx.bbactif.com


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

C'était super caca pour vous servir =) !
fabY‎​‎​‎​‎​‎​‎​‎​‎​‎​‎​‎​‎​‎​‎​‎​‎​‎​‎​‎​    

____________




Dernière édition par fabY le Dim 15 Fév 2009, 14:16, édité 3 fois
Revenir en haut Aller en bas
Falco
Maker qui quitte vraiment E-m Lv 60
Maker qui quitte vraiment E-m Lv 60
avatar

Nombre de messages : 13560
Age : 26

MessageSujet: Re: [Tutoriel + Script] Retrouver et capturer [x] (exemple)   Mar 20 Jan 2009, 18:42

Citation :
En effet, dans le tutoriel, vous apprendrez à courir derrière les poules si vous vous en approchez trop =O ! Or, c'est irréalisable sans script (en évent si vous préférez). Non non ne tentez pas de me prouver le contraire je vous affirme que c'est irréalisable,

Code:
<>Modifier variable. Variable X héros - Variable X poule.
<>Modifier variable. Variable y héros - Variable y poule..
<>Si la variable coordonné X héro est supérieur ou égal a -2
<>Si la variable coordonné X héro est inférieur ou égal a 2
<>Si la variable coordonné y héro est supérieur ou égal a -2
<>Si la variable coordonné y héro est inférieur ou égal a 2
Faire courir la poule.

Sympa le tuto sinon cactus smile

____________
"Listen now, you don't understand
That's not the point of Christmas land"
Revenir en haut Aller en bas
fabY
RTP de base Lv 1
RTP de base Lv 1
avatar

Nombre de messages : 10
Age : 22

MessageSujet: Re: [Tutoriel + Script] Retrouver et capturer [x] (exemple)   Mar 20 Jan 2009, 19:02

Osef ça calcul pas la distance aussi bien =P. Cependant faut bien que le script qu'hikari à fait serve XD. Donc au lieu de se faire chier comme ça eh bah le code se relève plus simple =O. Du moins c'est ce que je pense :O. A vrai dire j'ai pas cherché à faire en évent puisque j'avais le script d'hikari, et comme il l'a fait je pensais que c'était pas réalisable en évent fufu .

Citation :
Sympa le tuto sinon

Merci welcome 4

____________


Revenir en haut Aller en bas
Naqqah
Maker de Légende Lv 46
Maker de Légende Lv 46
avatar

Nombre de messages : 3377
Age : 21

MessageSujet: Re: [Tutoriel + Script] Retrouver et capturer [x] (exemple)   Mar 20 Jan 2009, 20:17

C'est sympa, j'ai pas tout lu, car ce n'est pas d'actualité d'utiliser ce genre de fonctions sur mon projet, donc je laisse tomber !

Mais comme tu as dit :

fabY a écrit:
Attention tutoriel en bloc ! Dur de s'y retrouver mais pourtant simple lorsque l'on comprend =).

Dans ce cas, pourquoi ne pas faire un tutoriel en sautant des lignes, en plaçant des espaces derrière les virgules et les points, un espace devant et un derrière les double points, les points d'interrogations, les points d'exclamations ?

C'est pourtant simple, et c'est un réflexe à prendre, car c'est toujours plus agréable pour les lecteurs, et en plus (!) ce n'est pas compliqué, et important si l'on veut se lancer dans l'informatique, et ENCORE plus dans le professionel...


Dernière édition par Naqqah le Mar 20 Jan 2009, 21:26, édité 1 fois
Revenir en haut Aller en bas
fabY
RTP de base Lv 1
RTP de base Lv 1
avatar

Nombre de messages : 10
Age : 22

MessageSujet: Re: [Tutoriel + Script] Retrouver et capturer [x] (exemple)   Mar 20 Jan 2009, 20:45

Naqqah > Avant de dire ça tu devrai en effet lire car il y a toujours un espace derrière les points et les virgules etc. J'ai sauté des lignes lorsqu'il fallait car rien de dit de sauter des lignes dans les paragraphes ayant le même vif du sujet. D'ailleurs c'est contre-indiqué.

Une phrase par hasard :

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


Par "bloc" je voulais entendre "pavé". De gros paragraphes dans lesquels on ne peut placer de saut de lignes...
Ça me fait bizarre qu'on me dise ça, je milite chaque jour pour la même chose >>.
Voila quoi =|

____________


Revenir en haut Aller en bas
Naqqah
Maker de Légende Lv 46
Maker de Légende Lv 46
avatar

Nombre de messages : 3377
Age : 21

MessageSujet: Re: [Tutoriel + Script] Retrouver et capturer [x] (exemple)   Mar 20 Jan 2009, 21:25

fabY a écrit:
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 Wink, 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.

Le changement est léger, j'avoue, mais c'est légèrement plus clair... Et je ne faisais pas ce commentaire !

Et pour le trip des caractères spéciaux, c'est pour que d'autres personnes le lisent, surtout, et le tout n'est pas pour te blâmer, sois en convaincu !

Enfin, je pense que l'on devrait changer de sujet, ne pas s'éterniser, et arrêter de s'éloigner du sujet ( merci qui ? Merci Naqqah ! JE dis ça car c'est moi qui ai démarré la conversation... ) !

Mais lorsque je te disait ça, je ne change pas d'avis quant à la qualité de ton tutoriel !
Tu en as fais un, ce que tous les membres ne feraient pas ! ( Sinon, E-M serait le forum le plus utile au monde ! ( si l'on compte tous les comptres fantômes... )) Donc, en tout cas, mon avis reste que ton tuto est utile, pratique, intéressant, très bien, mais je ne l'utiliserai pas actuellement...
Revenir en haut Aller en bas
AristA
Maker qui quitte vraiment E-m Lv 60
Maker qui quitte vraiment E-m Lv 60
avatar

Nombre de messages : 10884
Age : 20

MessageSujet: Re: [Tutoriel + Script] Retrouver et capturer [x] (exemple)   Mar 20 Jan 2009, 22:06

Woaw =D
C'est super !
Même si tout les scripts sont réalisables avec le petit truc de Falco (auquel j'ai pensé bien sur tout de suite... Comment ça non ?)
Néanmoins pour ceux qui ont la flemme de changer de page (suivez la flèche î ) C'est bien.
Et puis c'est plus rapide
Super tuto
je sais pas quoi dire...
Juste que ça fais beaucoup de texte quoi...
Revenir en haut Aller en bas
http://arista.lescigales.org
Contenu sponsorisé




MessageSujet: Re: [Tutoriel + Script] Retrouver et capturer [x] (exemple)   

Revenir en haut Aller en bas
 
[Tutoriel + Script] Retrouver et capturer [x] (exemple)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous pouvez répondre aux sujets dans ce forum
E-magination :: ~ Forums d'enrichissement ~ :: Apprentissage et partage :: RPG Maker VX & VX Ace :: Tutoriels / Scripts-
Répondre au sujetSauter vers: