查看: 2738|回复: 3

[已经解决] 帮忙简化一下脚本

[复制链接]
梦石
0
星屑
761
在线时间
7 小时
注册时间
2012-10-14
回帖
2
发表于 2012-10-27 12:03:24 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 Louf.D.Rubu 于 2012-10-27 14:41 编辑

   这个嗯    求简化一下 ........
[pre lang="ruby" line="1"]#==============================================================================
# ■ Window_TitleCommand
#------------------------------------------------------------------------------
#  标题画面中,增加指令"制作名单"

#==============================================================================
class Window_TitleCommand < Window_Command

  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
    update_placement
    select_symbol(:continue) if continue_enabled
    self.openness = 0
    open
  end
  #--------------------------------------------------------------------------
  # ● 获取窗口的宽度
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  #--------------------------------------------------------------------------
  # ● 更新窗口的位置
  #--------------------------------------------------------------------------
  def update_placement
    self.x = (Graphics.width - width) / 2
    self.y = (Graphics.height * 1.6 - height) / 2
  end
  #--------------------------------------------------------------------------
  # ● 生成指令列表
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(Vocab::new_game, :new_game)
    add_command(Vocab::continue, :continue, continue_enabled)
    add_command(Vocab::shutdown, :shutdown)
    add_command("制作名单", :制作名单)
    end
  #--------------------------------------------------------------------------
  # ● 获取“继续游戏”选项是否有效
  #--------------------------------------------------------------------------
  def continue_enabled
    DataManager.save_file_exists?
  end
end

#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  标题画面
#==============================================================================

class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # ● 开始处理
  #--------------------------------------------------------------------------
  def start
    super
    SceneManager.clear
    Graphics.freeze
    create_background
    create_foreground
    create_command_window
    play_title_music
  end
  #--------------------------------------------------------------------------
  # ● 获取渐变速度
  #--------------------------------------------------------------------------
  def transition_speed
    return 20
  end
  #--------------------------------------------------------------------------
  # ● 结束处理
  #--------------------------------------------------------------------------
  def terminate
    super
    SceneManager.snapshot_for_background
    dispose_background
    dispose_foreground
  end
  #--------------------------------------------------------------------------
  # ● 生成背景
  #--------------------------------------------------------------------------
  def create_background
    @sprite1 = Sprite.new
    @sprite1.bitmap = Cache.title1($data_system.title1_name)
    @sprite2 = Sprite.new
    @sprite2.bitmap = Cache.title2($data_system.title2_name)
    center_sprite(@sprite1)
    center_sprite(@sprite2)
  end
  #--------------------------------------------------------------------------
  # ● 生成前景
  #--------------------------------------------------------------------------
  def create_foreground
    @foreground_sprite = Sprite.new
    @foreground_sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height)
    @foreground_sprite.z = 100
    draw_game_title if $data_system.opt_draw_title
  end
  #--------------------------------------------------------------------------
  # ● 绘制游戏标题
  #--------------------------------------------------------------------------
  def draw_game_title
    @foreground_sprite.bitmap.font.size = 48
    rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2)
    @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1)
  end
  #--------------------------------------------------------------------------
  # ● 释放背景
  #--------------------------------------------------------------------------
  def dispose_background
    @sprite1.bitmap.dispose
    @sprite1.dispose
    @sprite2.bitmap.dispose
    @sprite2.dispose
  end
  #--------------------------------------------------------------------------
  # ● 释放前景
  #--------------------------------------------------------------------------
  def dispose_foreground
    @foreground_sprite.bitmap.dispose
    @foreground_sprite.dispose
  end
  #--------------------------------------------------------------------------
  # ● 执行精灵居中
  #--------------------------------------------------------------------------
  def center_sprite(sprite)
    sprite.ox = sprite.bitmap.width / 2
    sprite.oy = sprite.bitmap.height / 2
    sprite.x = Graphics.width / 2
    sprite.y = Graphics.height / 2
  end
  #--------------------------------------------------------------------------
  # ● 生成指令窗口
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_TitleCommand.new
    @command_window.set_handler(:new_game, method(:command_new_game))
    @command_window.set_handler(:continue, method(:command_continue))
    @command_window.set_handler(:shutdown, method(:command_shutdown))
    @command_window.set_handler(:制作名单, method(:command_制作名单))
    end
  #--------------------------------------------------------------------------
  # ● 关闭指令窗口
  #--------------------------------------------------------------------------
  def close_command_window
    @command_window.close
    update until @command_window.close?
  end
  #--------------------------------------------------------------------------
  # ● 指令“开始游戏”
  #--------------------------------------------------------------------------
  def command_new_game
    DataManager.setup_new_game
    close_command_window
    fadeout_all
    $game_map.autoplay
    SceneManager.goto(Scene_Map)
  end
  #--------------------------------------------------------------------------
  # ● 指令“继续游戏”
  #--------------------------------------------------------------------------
  def command_continue
    close_command_window
    SceneManager.call(Scene_Load)
  end
  #--------------------------------------------------------------------------
  # ● 指令“退出游戏”
  #--------------------------------------------------------------------------
  def command_shutdown
    close_command_window
    fadeout_all
    SceneManager.exit
  end
  #--------------------------------------------------------------------------
  # ● 指令“制作名单”
  #--------------------------------------------------------------------------
  def command_制作名单
    close_command_window
    fadeout_all
    $game_map.setup (12)
    SceneManager.goto(Scene_Map)
  end
  #--------------------------------------------------------------------------
  # ● 播放标题画面音乐
  #--------------------------------------------------------------------------
  def play_title_music
    $data_system.title_bgm.play
    RPG::BGS.stop
    RPG::ME.stop
  end
end
[/pre]
梦石
1
星屑
2088
在线时间
920 小时
注册时间
2012-10-18
回帖
416

开拓者

发表于 2012-10-27 14:11:20 | 显示全部楼层
本帖最后由 芙蕾娅 于 2012-10-27 14:20 编辑

这样?
[pre lang="ruby" line="1"]#==============================================================================
# ■ Window_TitleCommand
#------------------------------------------------------------------------------
#  标题画面中,增加指令"制作名单"
#==============================================================================
class Window_TitleCommand < Window_Command
  #--------------------------------------------------------------------------
  # ● 生成指令列表
  #--------------------------------------------------------------------------
  alias mcl_make_command_list make_command_list
  def make_command_list
    mcl_make_command_list
    add_command("制作名单", :制作名单)
  end
end

#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  标题画面
#==============================================================================

class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # ● 生成指令窗口
  #--------------------------------------------------------------------------
  alias ccw_create_command_window create_command_window
  def create_command_window
    ccw_create_command_window
    @command_window.set_handler(:制作名单, method(:command_制作名单))
  end
  #--------------------------------------------------------------------------
  # ● 指令“制作名单”
  #--------------------------------------------------------------------------
  def command_制作名单
    close_command_window
    fadeout_all
    $game_map.setup (12)
    SceneManager.goto(Scene_Map)
  end
end
[/pre]

评分

参与人数 1梦石 +2 收起 理由
迷糊的安安 + 2 认可答案 附赠66RPG提供的精美好人卡一张^^.

查看全部评分

回复

使用道具 举报

梦石
0
星屑
761
在线时间
7 小时
注册时间
2012-10-14
回帖
2
 楼主| 发表于 2012-10-27 14:40:33 | 显示全部楼层
芙蕾娅 发表于 2012-10-27 14:11
这样?
#==============================================================================
# ■ Window_T ...

      嗯      感谢
回复

使用道具 举报

梦石
0
星屑
50
在线时间
29 小时
注册时间
2012-10-1
回帖
16
发表于 2012-10-27 15:34:59 | 显示全部楼层
Louf.D.Rubu 发表于 2012-10-27 14:40
嗯      感谢

什么叫制作名单?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部