- 注册时间
- 2004-7-2
- 最后登录
- 2004-11-28
③业余
严谨第一
- 积分
- 103
|
在main上面新建一个Scene_Credit,然后贴入下面的代码
在游戏中加入一个事件,然后加入脚本$scene= Scene_Credit.new()调用
效果很不错的
# Scene_Credit
#
# 制作人员名单
#
class Scene_Credit
CREDIT=<<_END_
Cast
制作工具RPGmakerXP
字幕系统(完毕后自动返回地图)
如果想作为谢幕用,请修改return_scene = Scene_Map.new
为return_scene = Scene_Title.new
_END_
end
class Scene_Credit
def initialize(return_scene = nil)
if return_scene.nil?
return_scene = Scene_Map.new
end
@return_scene = return_scene
end
def scene_start
credit_lines = CREDIT.split(/\n/)
credit_bitmap = Bitmap.new(640,32 * credit_lines.size)
credit_lines.each_index do |i|
line = credit_lines
credit_bitmap.draw_text(0,i * 32,640,32,line,1)
end
@credit_sprite = Sprite.new(Viewport.new(0,50,640,380))
@credit_sprite.bitmap = credit_bitmap
@credit_sprite.oy = -430
@frame_index = 0
@last_flag = false
end
def scene_end
@credit_sprite.dispose
end
def last?
return (@frame_index >= @credit_sprite.bitmap.height + 480)
end
def last
if not @last_flag
Audio.bgm_fade(10000)
@last_flag = true
@last_count = 0
else
@last_count += 1
end
if @last_count >= 300
$scene = @return_scene
end
end
def update
@frame_index += 1
return if cancel?
last if last?
@credit_sprite.oy += 1
end
def cancel?
if Input.trigger?(Input::B)
$scene = @return_scene
return true
end
return false
end
def main
scene_start
# 过渡
Graphics.transition
# 主循环
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
# 准备过渡
Graphics.freeze
scene_end
end
end
# Scene_Credit
|
|