| 
 
| 赞 | 0 |  
| VIP | 0 |  
| 好人卡 | 0 |  
| 积分 | 1 |  
| 经验 | 1372 |  
| 最后登录 | 2013-2-15 |  
| 在线时间 | 19 小时 |  
 Lv1.梦旅人 
	梦石0 星屑50 在线时间19 小时注册时间2010-7-5帖子30 | 
| 完毕复制代码#脚本功能:字幕系统
#使用方法:main之前建立一个类,全选后粘贴。将脚本中的人名替换为自己要写的内容。
#使用的时候在事件中使用脚本$scene = Scene_Credit.new,播放完之后返回开头画面。
#如果想播放完之后返回地图,$scene = Scene_Credit.new(Scene_Map)
#效果:谢幕字幕
#版权:未知,有任何版权纠纷,本站不负任何责任。
# Scene_Credit
#
# 制作人员名单
#
class Scene_Credit
  CREDIT=<<_END_
这里填内容
_END_
end
class Scene_Credit
  def initialize(return_scene = nil)
    if return_scene.nil?
      return_scene = Scene_Title.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 [ 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
  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
 | 
 |