|
发表于 2010-6-17 22:12:42
|
显示全部楼层
- class Scene_Credit
- CREDIT = []
- CREDIT[0]=<<_END_
- 弟弟大大洞洞大大,
- 葫芦娃!
- _END_
- CREDIT[1]=<<_END_
- -----Cast------
- 制作工具:RPG Maker XP
- Just a credit.
- _END_
- def initialize(pic_name,credit = 0,return_scene = false)
- @sprite = Sprite.new
- @sprite.bitmap = Bitmap.new("Graphics/Pictures/"+pic_name)
- @sprite.x = 0
- @sprite.y = 0
- @return_scene = return_scene
- @index = credit
- end
-
- def return_to_scene
- if @return_scene
- $scene = Scene_Title.new
- else
- $scene = Scene_Map.new
- end
- end
-
- def scene_start
- credit_lines = CREDIT[@index].split(/\\n/)
- credit_bitmap = Bitmap.new(640,32 * credit_lines.size)
- credit_lines.each_index do |i|
- line = credit_lines[i]
- 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
- @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
- return_to_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)
- return_to_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
复制代码 |
|