Après la théorie, la pratique.
Comme dit dans le titre, ceci sera un cours destiné à utiliser vos connaissances (fraîchement ^^) apprises.
Commençons simplement :
Ajouter le battler dans le menu d’équipement.
On ouvre l’éditeur de scripts, direction Window_EquipLeft (c’est la fenêtre dans laquelle les caractéristiques du héros sont affichées).
Avant, un petit bout de théorie :
Vous voyez, à la ligne 25 :
- Code:
-
draw_actor_name(@actor, 4, 0)
(retenez que cette ligne est un raccourci, j‘y reviendrai dans quelques minutes)
Cette ligne écrira le nom du héros, dans la fenêtre def initialize (reprise par refresh
*) à 4 sur l’axe des x et 0 sur l’axe des y.
Ici :
Qu’est-ce donc que ce « @actor » ?Une variable. Elle contient toutes les données relatives au héros, dont leur nom : (pour un projet vierge) :
« Arsches »
« Basil »
« Gloria »
ou « Hilda ».
[ *pour l’explication du refresh par rapport à initialize :
Refresh est l’équivalent de « le même que dit précédemment » cela signifie qu’il reprend la même def que la précédente ]C’est déjà un point que l’on vient d’apprendre.
Mon petit doigt me dit que si je peux afficher le nom du héros sélectionné… il y a de fortes chances que je puisse afficher son battler
.
Mais, pour cela, il faudra
appeler ce battler…
Dans le script Window_EquipLeft, nous allons simplement ajouter cette ligne (un raccourci) :
- Code:
-
draw_actor_battler(@actor, 180, 165)
après celle-ci :
- Code:
-
draw_actor_name(@actor, 4, 0)
Je disais donc que cette ligne était un raccourci… Oui, car chaque ligne de script doit être définie. Mais, pour ne pas encombrer tous les scripts avec des définitions, elles sont toutes regroupées dans la Caverne d’Ali-scripta, plus connue sous le nom de Window_Base !
Bien, allons donc jeter un coup d’œil dans le Window_base, vers la ligne 121.
Oh ! Mais qui voilà ? def draw_actor_name !
Bon, à vrai dire, il ne nous intéresse plus… Car, nous voulons ajouter une image et non un texte… remontons alors jusqu’à la ligne 108.
- Code:
-
def draw_actor_graphic(actor, x, y)
bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
cw = bitmap.width / 4
ch = bitmap.height / 4
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
End
( ces lignes servent à afficher un chara, on se rapproche de notre but !)
Ça fait beaucoup de mots bizarres les uns à la suite des autres… Allez, débroussaillons tout ça
.
def draw_actor_graphic(actor, x, y) la définition de la ligne « draw_actor_graphic » suivie de ses coordonnées.
bitmap = RPG::Cache.character => le dossier des characters, dans lequel le logiciel va puiser les images.
Hum… pour un chara… il va dans le dossier character… alors, pour un battler, il ira dans le dossier battler, si si, je vous jure ^^.
Ensuite,
cw : la largeur du chara qui est égale à l’image divisée ( / ) par 4... Vous visualisez un chara ? Il a bien 4 poses par ligne… Ici, nous n’avons besoin que de la première pose, donc, on coupe le reste, on ne prend qu’un quart de la largeur de l’image.
ch (confédération helvétique xD amis Suisses, bonjour ^^, ceci n‘a aucun rapport avec le script ^^’), c’est la hauteur de l’image, également divisé par 4, car ici, aussi, nous ne voulons que la première pose de la première colonne.
Bon, avec ce que nous venons de voir, nous pouvons commencer à scripter (écrivez avant les lignes concernant l‘affichage des charas).
Que doit-on définir ? La ligne écrite dans Window_EquipLeft:
- Code:
-
def draw_actor_battler(actor, x, y)
Ensuite, le dossier dans lequel se trouve le battler (plus la même parenthèse) :
- Code:
-
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
La largeur de l'image :
- Code:
-
cw = bitmap.width
(pas de /4, on veut l’image entière
)
Ainsi que sa hauteur :
- Code:
-
ch = bitmap.height
(idem)
Et on recopie le reste (le Rect.new signifie qu’il faut créer un nouveau rectangle, celui-ci contiendra l‘image) :
- Code:
-
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
End
Maintenant, vous faites un beau petit script avec tout ceci et vous arrivez à :
- Code:
-
def draw_actor_battler(actor, x, y)
bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
End
Résultat :
[ maintenant que le raccourci est défini, vous pouvez l’employer ailleurs, exemple dans le Window_status pour afficher le battler dans « État ». ]
[ si vous ne voulez pas relire ce tuto, dans l’éventualité d’un trou de mémoire, vous pouvez ajouter des notes en commentaire :
# le logiciel n’en tiendra pas compte, tant qu’il se trouve après ce « # » ]
J’espère que ce cours/ application vous aura aidé ^^.
Cordialement,
Cœur Sombre.