赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 3 |
经验 | 0 |
最后登录 | 2024-6-1 |
在线时间 | 39 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 322
- 在线时间
- 39 小时
- 注册时间
- 2020-5-21
- 帖子
- 20
|
3楼
楼主 |
发表于 2020-7-24 23:15:45
|
只看该作者
这样的...
- class Scene_Menu < Scene_MenuBase
- def start
- super
- create_menu_background
- create_command_window
- create_gold_window
- create_timer_window
- create_status_window
- end
- def create_menu_background
- @menu_background = Sprite.new
- @menu_background.bitmap = Cache.system('menu_bg')
- end
- def dispose_menu_background
- @menu_background.bitmap.dispose
- @menu_background.dispose
- end
- def terminate
- super
- dispose_background
- dispose_menu_background
- end
- def create_gold_window
- @gold_window = Window_Gold.new
- end
- def create_timer_window
- @timer_window = Window_Timer.new
- end
- def create_command_window
- @command_window = Window_MenuCommand.new
- @command_window.set_handler(:item, method(:command_item))
- @command_window.set_handler(:skill, method(:command_personal))
- @command_window.set_handler(:equip, method(:command_personal))
- @command_window.set_handler(:status, method(:command_personal))
- @command_window.set_handler(:formation, method(:command_formation))
- @command_window.set_handler(:common_event_8, method(:command_common_event_8))
- @command_window.set_handler(:continue, method(:command_continue))
- @command_window.set_handler(:game_end, method(:command_game_end))
- @command_window.set_handler(:cancel, method(:return_scene))
- end
- def create_status_window
- @status_window = Window_MenuStatus.new(0, 0)
- end
- def command_common_event_8
- $game_temp.reserve_common_event(8)
- SceneManager.goto(Scene_Map) if $game_temp.common_event_reserved?
- end
- def command_continue
- SceneManager.call(Scene_Load)
- end
- end
- class Window_MenuCommand < Window_Command
- def initialize
- super(457, 184)
- self.opacity = 0 if SceneManager.scene_is?(Scene_Menu)
- select_last
- end
- def window_width
- return 87
- end
- def window_height
- return 232
- end
- def make_command_list
- add_command(Vocab::item, :item, main_commands_enabled)
- add_command(Vocab::skill, :skill, main_commands_enabled)
- add_command(Vocab::equip, :equip, main_commands_enabled)
- add_command(Vocab::status, :status, main_commands_enabled)
- add_command(Vocab::formation, :formation, formation_enabled)
- add_command($data_common_events[8].name, :common_event_8)
- add_command(Vocab::continue, :continue, main_commands_enabled)
- add_command(Vocab::game_end, :game_end)
- end
- def alignment
- return 2
- end
- end
- class Window_MenuStatus < Window_Selectable
- def initialize(x, y)
- super(x, y, window_width, window_height)
- @pending_index = -1
- self.opacity = 0 if SceneManager.scene_is?(Scene_Menu)
- refresh
- end
- def window_width
- return 294
- end
- def window_height
- return 132
- end
- def item_height
- return (height - standard_padding * 2) / 1
- end
- def draw_item(index)
- actor = $game_party.members[index]
- enabled = $game_party.battle_members.include?(actor)
- rect = item_rect(index)
- draw_item_background(index)
- draw_actor_face(actor, rect.x + 0, rect.y + 8, enabled)
- draw_actor_simple_status(actor, rect.x, rect.y)
- end
- def draw_actor_simple_status(actor, x, y)
- draw_actor_name(actor, x + 144, y + 8)
- draw_actor_level(actor, x + 104, y + 8)
- draw_actor_hp(actor, x + 136, y + 32)
- draw_actor_mp(actor, x + 136, y + 64)
- end
- def draw_face(face_name, face_index, x, y, enabled = true)
- bitmap = Cache.face(face_name)
- rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, 96, 96)
- contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
- bitmap.dispose
- end
- def draw_actor_name(actor, x, y, width = 112)
- change_color(hp_color(actor))
- draw_text(x, y, width, 24, actor.name)
- end
- def draw_actor_level(actor, x, y)
- change_color(system_color)
- draw_text(x, y, 32, line_height, Vocab::level_a)
- change_color(normal_color)
- draw_text(x + 40 - 24, y, 24, 26, actor.level, 2)
- end
- def draw_actor_hp(actor, x, y, width = 124)
- draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
- change_color(system_color)
- draw_text(x, y, 30, line_height, Vocab::hp_a)
- draw_current_and_max_values(x, y, width, actor.hp, actor.mhp,
- hp_color(actor), normal_color)
- end
- def draw_actor_mp(actor, x, y, width = 124)
- draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
- change_color(system_color)
- draw_text(x, y, 30, line_height, Vocab::mp_a)
- draw_current_and_max_values(x, y, width, actor.mp, actor.mmp,
- mp_color(actor), normal_color)
- end
- end
- class Window_MenuActor < Window_MenuStatus
- def initialize
- super(0, 0)
- self.visible = false
- end
- def window_height
- Graphics.height
- end
- end
- class Window_Gold < Window_Base
- def initialize
- super(384, 43, window_width, 48)
- self.opacity = 0 if SceneManager.scene_is?(Scene_Menu)
- refresh
- end
- def window_width
- return 160
- end
- def refresh
- contents.clear
- change_color(system_color)
- draw_text(4, 0, contents_width - 8, line_height, '')
- cx = text_size(currency_unit).width
- change_color(normal_color)
- draw_text(4, contents_height - line_height, contents.width - 8 - cx - 2, line_height, value, 2)
- change_color(system_color)
- draw_text(4, contents_height - line_height, contents.width - 8, line_height, currency_unit, 2)
- end
- end
- class Window_Timer < Window_Base
- def initialize
- super(440, 0, window_width, 45)
- self.opacity = 0 if SceneManager.scene_is?(Scene_Menu)
- refresh
- end
- def window_width
- return 104
- end
- def refresh
- contents.clear
- change_color(system_color)
- draw_text(4, 0, contents_width - 8, line_height, '')
- change_color(normal_color)
- draw_playtime(4, contents_height - line_height, contents.width - 8, 2)
- end
- def open
- refresh
- super
- end
- def draw_playtime(x, y, width, align)
- draw_text(x, y, width, line_height, $game_system.playtime_s, align)
- end
- def update
- refresh
- end
- end
复制代码 |
|