Rajouter des icones dans les listes des menus
Auteur : Darkleo
Cet utilitaire sert uniquement dans les scenes de menus, où l'on trouve des listes de choix. (exemple : Scene_Title, Scene_Menu, etc...) Pour les scripteurs, dans tout fenêtre de classe Window_Command.
Il permet de rajouter des icones aux différents choix de la liste.
La manipulation est expliquée dans l'entête.
Notez que vous pouvez fixer une taille maximum à la liste !
- Code: Tout sélectionner
#====================================================================
# ■ Window_Command_Icon (Utilitaire)
#====================================================================
# Auteur : Darkleo
#--------------------------------------------------
# Permet de rajouter des icones dans des listes de choix en script
# Rechercher les lignes de ce type : (tiré de Scene_Title, ligne 40)
# @command_window = Window_Command.new(192, [s1, s2, s3])
# Et modifiez les ainsi : (ajoutez entre crochets les noms des icones entre guillemets)
# @command_window = Window_Command_Icon.new(192, [s1, s2, s3],
# ["001-Weapon01" ,"002-Weapon02" ,"001-Weapon01"])
# (vous pouvez mettre la ligne en deux lignes, dans ce cas la coupez après la virgule)
# Laissez vide les guillemets pour ne pas utiliser d'icone
#
# Vous pouvez remplacez la dernière parenthèse ceci : (avec la virgule !)
# , 2)
# Cela permettra de fixer une taille maximum à la liste
#====================================================================
class Window_Command_Icon < Window_Selectable
#--------------------------------------------------------------------------
def initialize(width, commands, icons, max = commands.size)
super(0, 0, width, ([commands.size, max].min + 1) * 32)
@item_max = commands.size
@commands = commands
@icons = icons
self.contents = Bitmap.new(width - 32, @item_max * 32)
self.contents.font.name = $fontface
self.contents.font.size = $fontsize
refresh
self.index = 0
end
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
#--------------------------------------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
icon_bitmap = RPG::Cache.icon(@icons[index])
src_rect = Rect.new(0, 0, 24, 24)
self.contents.blt(4 , (32 * index) + 4, icon_bitmap, src_rect)
rect = Rect.new(4 + 28, 32 * index, self.contents.width - 8 - 28, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index])
end
#--------------------------------------------------------------------------
def disable_item(index)
draw_item(index, disabled_color)
end
#--------------------------------------------------------------------------
end
#====================================================================
un screen enfin (en utilisant l'exemple) :

Enjoy !
_________________

Projets