Faire une Pop Up de dégâts sur le héros sur la carte
But : Afficher une Pop Up de dégâts comme pendant les combats mais cette fois ci sur la carte et sur le héros. La Pop Up s'affiche quand le héros via un évènement (contact, processus parallèle ...etc.)

Ce que vous devez connaitre :
Il est conseillé d'avoir quelques bases en Ruby et RGSS
et de posséder la documentation. Pour le RGSS, nous allons manipuler les Sprites.I) Le principe.
Au contact de l'évènement, nous allons appeler une variable. Dès que cette variable est activé, le script exécute un morceau de code qui va afficher la Pop Up. Juste après, la variable est désactivé afin d'éviter des Pop-Ups à l'infini.
Le principal est déjà fait, RPG Maker nous donne déjà des méthodes pour afficher une Pop-Up (voir documenation) :
- damage(valeur, critique) : affichage du Sprite "Pop-Up"
- effect? : Savoir si le Sprite "Pop-Up" est actif.
La difficulté est surtout la suivante : sur quel Sprite allons nous l'afficher ? Nous voulons l'afficher sur le héros donc il faut retrouver le Sprite "Héros". Pour cela, nous allons aller dans le script "Spriteset_Map".
II) Trouvons le Sprite "Héros" dans le script "Spriteset_Map"
Quand on commence le jeu, Ruby va "installer" le décors sur l'écran. Cette classe, "Spriteset_Map", va afficher les images tels que le Tilesets, Auto-Tiles, Brouillard ... et les Sprites. Evidemment, il ne fait pas le tout en même temps, il y a un ordre.
C'est principalement la méthode "initialize" qui va nous intéressé. C'est dans cette méthode qu'on voit l'enchainement de la mise en place des images. Les lignes que nous voulont sont les suivantes :
Vous remarquez, qu'en boucle, chaque évènement de la map est mis dans un tableau :
Et après la boucle "for", c'est votre héros qui est mis dans le tableau des Sprites, et à la fin de ce dernier !
Ainsi, vous savez où se trouve le Sprite "Héros" dans ce bazard ! A la fin du tableau "@character_sprites". Pour savoir donc son emplacement, il suffit de prendre la taille du tableau, moins 1 :
Créeons donc notre méthode pour afficher la fameuse Pop-Up.
III) Pop-Up, me voici !
Nous allons créer donc la Pop-Up sur le Sprite "Héros". Pour cela, restons dans cette classe et faisons une méthode :
Quand on appellera la méthode "pop_up_damage", une Pop-Up s'affichera automatiquement sur le Sprite.
IV) Pop-Up, est tu là ?
Il faut vérifier si la Pop-Up est active. Cela évitera que, plus tard, on affiche plusieurs fois la Pop-Up car on ne sait pas si celle ci a été affiché ou non. Faisons donc notre méthode, toujours dans la même classe ("Spriteset_Map") :
Cela renvoie "true" si la Pop-up est toujours sur le Sprite "Héros" sinon, ça renvoie "false".
V) Activer la Pop-Up
Bon, maintenant, il faut activer la Pop-Up quand le héros est en contact avec l'évènement. Comme on l'a vu dans le principe précédemment, nous allons faire une variable globale ... voire même utiliser une variable déjà existante : $game_temp
Allons dans le script "Game_Temp". Nous allons initialiser un attribut à "false" (donc au départ, aucun Pop-Up ne s'affiche) :
On déclare l'attribut comme d'habitude et dans la méthode "initialize", on l'initialise :
VI) Afficher la Pop-Up quand la variable est activé.
Tout ce passe dans le script "Scene_Map", puisque c'est ici que les Sprites sont affichés. Dans la méthode "update", nous pouvons donc mettre ceci :
Avec la variable "$game_temp.pop_up_damage" qu'on a créé, on peu activer et désactiver à volonté notre Pop-Up. La Pop-Up est appelé grâce à la variable @spriteset, qui est un objet de la classe "Spriteset_Map" déjà initialisé.
VII) Déclencher la Pop-Up via un évènement.
Et bien, normalement, ce paragraphe ne devrait pas exister ^^, car si vous avez compris le tutorial, vous savez comment déclencher la Pop-Up. Oui, il suffit de mettre la variable "$game_temp.pop_up_damage" à "true".
Faites donc un évènement et dans "Insérer un Script", mettez :
Page vue 5884 fois | Auteur : Samarium

