| 
 
| 赞 | 0 |  
| VIP | 0 |  
| 好人卡 | 0 |  
| 积分 | 3 |  
| 经验 | 0 |  
| 最后登录 | 2025-6-26 |  
| 在线时间 | 41 小时 |  
 Lv2.观梦者 
	梦石0 星屑287 在线时间41 小时注册时间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
 | 
 |