Age : 28 Inscrit le : 30/12/2009 Messages : 1067
| Sujet: [VXAce] Kouett Dim 25 Aoû 2013 - 13:55 | |
| Bonjour à tous et à toutes ! Kouett m'a demandé récemment de lui faire un menu assez spécial. Je récapitule ses demandes : - afficher une image de fond - faire apparaitre un certain nombre d'objets de l'inventaire grâce à des images (n'importe quel objet, même un objet qui n'est pas dans l'inventaire !) - la vie du personnage apparait sous forme de rose (il vous suffira de faire l'image sous forme de rose ! L'image se consumme du haut vers le bas) Il va vous falloir 3 images minimum : - HP_BAR : qui correspond à la barre de vie - HP_BAR_BACK : qui correspond au fond de la barre de vie - MenuBack : qui correspond à l'image de fond De plus, pour chaque objet que vous allez afficher, il vous faudra une image (attention à ne pas trop la faire en hauteur) se nommant par le nom de cet objet ! Le script :- Spoiler:
- Code:
-
################################################################################ ##### KouettMenu ################################################################################ # Auteur : Biward # Date : 21/08/2013 19:50 # Version : VXAce # # Permet d'avoir un menu avec la vie d'un héro que vous pouvez définir en event # et d'afficher un certain nombre d'images dépendent des objets que vous ajoutez # au script. # # Il existe trois commandes possibles : # - perso_menu(id) qui va indiquer au menu qu'il devra afficher la vie du perso # qui a pour ID "id". # # - menu_item(id) qui va ajouter l'item ID en affichage dans le menu # # - remove_menu_item(id) qui va enlever l'item ID de l'affichage du menu ################################################################################ ##### ConfigurationMenu ################################################################################ module BIKO # Indiquez ici la position de la jauge de vie [x, y] Position_life = [32, 80] # Indiquez ici la position de la première image d'objet [x, y] Position_items = [200, 80] # Indiquez l'ID du héro qui sera affiché dès le début dans le menu Id_hero = 1 end ################################################################################ ##### Debut du Script ################################################################################ ### Scene_Menu class Scene_Menu class << self attr_accessor :perso, :items end #----------------------------------START-------------------------------------- def start super check_variables create_back create_life create_window_items end def check_variables Scene_Menu.perso ||= BIKO::Id_hero if BIKO::Id_hero > 0 Scene_Menu.items ||= [] end def create_life @window_life = Window_Base.new(-16, -16, Graphics.width + 32, Graphics.height + 32) @window_life.opacity = 0 spritelife_back = Cache.system("HP_BAR_BACK") spritelife = Cache.system("HP_BAR") src_rect_back = Rect.new(0, 0, spritelife.width, spritelife.height) mp = ($game_actors[Scene_Menu.perso].hp.to_f / $game_actors[Scene_Menu.perso].mhp.to_f ).to_f * spritelife.height.to_f src_rect = Rect.new(0, spritelife.height - mp, spritelife.width, spritelife.height) x = BIKO::Position_life[0] y = BIKO::Position_life[1] pp = spritelife.height - mp @window_life.contents.blt(x, y, spritelife_back, src_rect_back) @window_life.contents.blt(x, y + pp, spritelife, src_rect) end def create_back @spriteback = Sprite.new @spriteback.bitmap = Cache.system("MenuBack") end def create_window_items @img ||= [] @x ||= BIKO::Position_items[0] @y ||= BIKO::Position_items[1] @i ||= 0 Scene_Menu.items.each do |i| @img << Sprite.new @img[@i].bitmap = Cache.system($data_items[i].name.to_s) @img[@i].x = @x ; @img[@i].y = @y @y += @img[@i].height ; @i += 1 end end #---------------------------------TERMINATE----------------------------------- def terminate super dispose_life dispose_back dispose_window_items end def dispose_life @window_life.dispose end def dispose_back @spriteback.dispose end def dispose_window_items @img.each { |i| i.dispose } end #------------------------------------UPDATE----------------------------------- def update super SceneManager.return if Input.trigger?(:B) end end
### Game_Interpreter class Game_Interpreter def perso_menu(id) Scene_Menu.perso = id end def menu_item(id) Scene_Menu.items ||= [] Scene_Menu.items << id if ! Scene_Menu.items.include?(id) end def remove_menu_item(id) Scene_Menu.items ||= [] index = Scene_Menu.items.index(id) if Scene_Menu.items.include?(id) Scene_Menu.items.delete_at(index) if index end end ################################################################################ ##### Fin du Script ################################################################################
Enjoy! J'attends vos retours pour savoir si je peux l'améliorer héhé! |
|