Voyageur Lv.10
Inscrit le : 31/12/2011 Messages : 396
| Sujet: [VX] Menu basique Sam 22 Sep 2012 - 12:05 | |
| Bon, ce menu n'est ni beau, ni spectaculaire, mais il a l'avantage d'être de moi :ok: . Voici les script : A nommer "Scene_Menu" - Code:
-
#============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # This class performs the menu screen processing. #==============================================================================
class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # * Object Initialization # menu_index : command cursor's initial position #-------------------------------------------------------------------------- def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background create_command_window @gold_window = Window_Gold.new(384, 1) @status_window = Window_MenuStatus.new(1, 1) end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- def terminate super dispose_menu_background @command_window.dispose @gold_window.dispose @status_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super update_menu_background @command_window.update @gold_window.update @status_window.update if @command_window.active update_command_selection elsif @status_window.active update_actor_selection end end #-------------------------------------------------------------------------- # * Create Command Window #-------------------------------------------------------------------------- def create_command_window s1 = Vocab::item s2 = Vocab::skill s3 = Vocab::equip s4 = Vocab::status s5 = Vocab::save s6 = Vocab::game_end @command_window = Window_Command.new(160,[s1, s2, s3, s4, s5, s6]) @command_window.index = @menu_index if $game_party.members.size == 0 # If number of party members is 0 @command_window.draw_item(0, false) # Disable item @command_window.draw_item(1, false) # Disable skill @command_window.draw_item(2, false) # Disable equipment @command_window.draw_item(3, false) # Disable status end if $game_system.save_disabled # If save is forbidden @command_window.draw_item(4, false) # Disable save end end #-------------------------------------------------------------------------- # * Update Command Selection #-------------------------------------------------------------------------- def update_command_selection if Input.trigger?(Input::B) Sound.play_cancel $scene = Scene_Map.new elsif Input.trigger?(Input::C) if $game_party.members.size == 0 and @command_window.index < 4 Sound.play_buzzer return elsif $game_system.save_disabled and @command_window.index == 4 Sound.play_buzzer return end Sound.play_decision case @command_window.index when 0 # Item $scene = Scene_Item.new when 1,2,3 # Skill, equipment, status start_actor_selection when 4 # Save $scene = Scene_File.new(true, false, false) when 5 # End Game $scene = Scene_End.new end end end #-------------------------------------------------------------------------- # * Start Actor Selection #-------------------------------------------------------------------------- def start_actor_selection @command_window.active = false @status_window.active = true if $game_party.last_actor_index < @status_window.item_max @status_window.index = $game_party.last_actor_index else @status_window.index = 0 end end #-------------------------------------------------------------------------- # * End Actor Selection #-------------------------------------------------------------------------- def end_actor_selection @command_window.active = true @status_window.active = false @status_window.index = -1 end #-------------------------------------------------------------------------- # * Update Actor Selection #-------------------------------------------------------------------------- def update_actor_selection if Input.trigger?(Input::B) Sound.play_cancel end_actor_selection elsif Input.trigger?(Input::C) $game_party.last_actor_index = @status_window.index Sound.play_decision case @command_window.index when 1 # skill $scene = Scene_Skill.new(@status_window.index) when 2 # equipment $scene = Scene_Equip.new(@status_window.index) when 3 # status $scene = Scene_Status.new(@status_window.index) end end end end
A nommer "Windows_MenuStatus" - Code:
-
#============================================================================== # ** Window_MenuStatus #------------------------------------------------------------------------------ # This window displays party member status on the menu screen. #==============================================================================
class Window_MenuStatus < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(x, y) super(x, y, 384, 416) refresh self.active = false self.index = -1 end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear @item_max = $game_party.members.size for actor in $game_party.members draw_actor_face(actor, 2, actor.index * 96 + 2, 92) x = 104 y = actor.index * 96 + WLH / 2 draw_actor_name(actor, x, y) draw_actor_class(actor, x + 120, y) draw_actor_level(actor, x, y + WLH * 1) draw_actor_state(actor, x, y + WLH * 2) draw_actor_hp(actor, x + 120, y + WLH * 1) draw_actor_mp(actor, x + 120, y + WLH * 2) end end #-------------------------------------------------------------------------- # * Update cursor #-------------------------------------------------------------------------- def update_cursor if @index < 0 # No cursor self.cursor_rect.empty elsif @index < @item_max # Normal self.cursor_rect.set(0, @index * 96, contents.width, 96) elsif @index >= 100 # Self self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96) else # All self.cursor_rect.set(0, 0, contents.width, @item_max * 96) end end end
- Code:
-
#============================================================================== # ** Window_Command #------------------------------------------------------------------------------ # This window deals with general command choices. #==============================================================================
class Window_Command < Window_Selectable #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :commands # command #-------------------------------------------------------------------------- # * Object Initialization # width : window width # commands : command string array # column_max : digit count (if 2 or more, horizontal selection) # row_max : row count (0: match command count) # spacing : blank space when items are arrange horizontally #-------------------------------------------------------------------------- def initialize(width, commands, column_max = 1, row_max = 0, spacing = 32) if row_max == 0 row_max = (commands.size + column_max - 1) / column_max end super(384, 50, width, row_max * WLH + 32, spacing) @commands = commands @item_max = commands.size @column_max = column_max refresh self.index = 0 end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...@item_max draw_item(i) end end #-------------------------------------------------------------------------- # * Draw Item # index : item number # enabled : enabled flag. When false, draw semi-transparently. #-------------------------------------------------------------------------- def draw_item(index, enabled = true) rect = item_rect(index) rect.x += 4 rect.width -= 8 self.contents.clear_rect(rect) self.contents.font.color = normal_color self.contents.font.color.alpha = enabled ? 255 : 128 self.contents.draw_text(rect, @commands[index]) end end
Et une screen : Si y'a des problèmes, n'hésitez pas a me demander . Merci ! Je déplace, +3 points de participation ! |
|
Voyageur Lv.10
Age : 23 Inscrit le : 27/07/2012 Messages : 433
| Sujet: Re: [VX] Menu basique Dim 23 Sep 2012 - 16:50 | |
| merci je m'en servirai pour mon jeu !
Heav'n |
|
Voyageur Lv.10
Inscrit le : 31/12/2011 Messages : 396
| Sujet: Re: [VX] Menu basique Dim 23 Sep 2012 - 16:50 | |
| Bof, ce script n'est franchement pas spéctaculaire, c'est un très vieux . Après si tu le veux, fais ce que tu veux . |
|
Voyageur Lv.10
Age : 23 Inscrit le : 27/07/2012 Messages : 433
| Sujet: Re: [VX] Menu basique Dim 23 Sep 2012 - 16:58 | |
| de toute façon je n'en ai pas de menu alors je le prends en attendant
Heav'n |
|
Illusionniste Lv.12
Age : 29 Inscrit le : 20/08/2012 Messages : 743
| Sujet: Re: [VX] Menu basique Dim 23 Sep 2012 - 17:51 | |
| Si tu le poste c'est bien pour que quelqu'un puisse l'utiliser ^^ Il n'est peut être pas spectaculaire, mais pour certains ça peut plaire, pour ceux qui aiment la simplicité et ce style là !
Tout de même, merci du partage. |
|
Invité
| Sujet: Re: [VX] Menu basique Dim 23 Sep 2012 - 18:22 | |
| Bon... loin de moi l'envie d'être désagréable... mais c'est pas fameux... tu devrais réviser un peu le monkeypatching... Allez, voici exactement le même rendu que le tien: - Code:
-
#============================================================================== # ** Scene_Menu #------------------------------------------------------------------------------ # This class performs the menu screen processing. #==============================================================================
class Scene_Menu #-------------------------------------------------------------------------- # * Alias #-------------------------------------------------------------------------- alias menu_start start #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super menu_start @gold_window.x, @gold_window.y = 384, 0 @status_window.x = @status_window.y = 0 @command_window.x, @command_window.y = 384, 58 end end
C'est un peu plus court non ^^?
Dernière édition par Grim le Dim 23 Sep 2012 - 19:27, édité 1 fois |
|
Voyageur Lv.10
Inscrit le : 31/12/2011 Messages : 396
| Sujet: Re: [VX] Menu basique Dim 23 Sep 2012 - 18:36 | |
| Ouai je sais il est très vieux en plus c'était une modif d'un script de base |
|
| Sujet: Re: [VX] Menu basique | |
| |
|