赞 | 0 |
VIP | 0 |
好人卡 | 2 |
积分 | 1 |
经验 | 5485 |
最后登录 | 2014-2-4 |
在线时间 | 196 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 196 小时
- 注册时间
- 2010-10-20
- 帖子
- 143
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 精灵使者 于 2012-1-15 13:51 编辑
本文所示的代码均不是完整的需要放到实际的环境中
大家是知道的,以前在RMVX中的时候可以动点小手脚来添加其他的项
RMVX的格式如下:
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
# 处理标题画面的类。
#==============================================================================
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
super
@command_window.update
if Input.trigger?(Input::C)
case @command_window.index
when 0 #New game
command_new_game
when 1 # Continue
command_continue
when 2 # Shutdown
command_shutdown
when 3 # 测试地图
command_ceshi
end
end
end
#--------------------------------------------------------------------------
# ● 生成命令窗口
#--------------------------------------------------------------------------
def create_command_window
s1 = Vocab::new_game
s2 = Vocab::continue
s3 = Vocab::shutdown
s4 = "其他模式"
@command_window = Window_Command.new(270, [s1, s2, s3, s4])
# <--- @command_window = Window_Command.new(172, [s1, s2, s3, s4])
@command_window.x = (1024 - @command_window.width) / 2
@command_window.y = 450 #<------ @command_window.y = 288
if @continue_enabled # 如果「继续」有效
@command_window.index = 1 # 将光标移至「继续游戏」
else # 否则则将「继续游戏」半透明化
@command_window.draw_item(1, false)
end
@command_window.openness = 0
@command_window.open
end
就是这样,在RMVX中只有一个处理标题界面的东西那就是Scene_Title
可是在RMVA中可恶的EB!竟然把Scene_Title分成了3个部分
分别是window_TitleCommand、DataManage、Scene_Title三个部分( T T EB!你这是明显给我们找麻烦啊!)
这三个部分联合处理一个开始界面,每个都有不同的代码,从汉化版的RMVA你们是知道的!
对于DataManage来说应该在设置:新游戏的下面添加一段与设置新游戏基本一样的代码
如,我添加的
#--------------------------------------------------------------------------
# ● 设置其他模式
#--------------------------------------------------------------------------
def self.setup_zhizuo
create_game_objects
$game_party.setup_starting_members
$game_map.setup(1)
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
Graphics.frame_count = 0
end
注意到def这行了没有 原来是
def self.setup_new_game
被我改成了
def self.setup_zhizuo
setup后面的名字可以随便起,不过要记住
对于window_TileCommand来说,他是组成标题中的那个框框里面的选项
#--------------------------------------------------------------------------
# ● 生成指令列表
#--------------------------------------------------------------------------
def make_command_list
add_command(Vocab::new_game, :new_game)
add_command(Vocab::continue, :continue, continue_enabled)
add_command("制作者名单", :zhizuo)
add_command(Vocab::shutdown, :shutdown)
end
add_command(XXXXX)的顺序决定就是框框里面的顺序了
add_command其实就跟VX里面的When X command_XXX一样,是用于调用scene_Title中对应的选项一样
对于Scene_Title来说,他是组成标题画面的关键,他相当于司令员调用者上面两个
#--------------------------------------------------------------------------
# ● 生成指令窗口
#--------------------------------------------------------------------------
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(:zhizuo, method(:command_zhizuo))
@command_window.set_handler(:shutdown, method(:command_shutdown))
end
#--------------------------------------------------------------------------
# ● 指令 [制作者名单]
#--------------------------------------------------------------------------
def command_zhizuo
DataManager.setup_zhizuo
close_command_window
fadeout_all
$game_map.autoplay
SceneManager.goto(Scene_Map)
end
其实 @command_window.set_handler(:zhizuo, method(:command_zhizuo))中间的:command_zhizuo和zhizuo就是承接上面的add……的
制作者名单不用我说吧!
注意DataManager.setup_zhizuo这句就是调用上面的那个 |
|