Project1

标题: 【新生】求滚动字幕脚本和用法......... [打印本页]

作者: xz682678000    时间: 2010-7-28 13:07
标题: 【新生】求滚动字幕脚本和用法.........
RT
作者: 帅气的袋鼠    时间: 2010-7-28 13:11
请搜索关键字"滚动字幕"
作者: 逸豫    时间: 2010-7-28 13:15


  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #——使用注意:默认会返回地图,如果需要返回开头,请将本脚本中的
  5. #return_scene = Scene_Map.new改为return_scene = Scene_Title.new

  6. class Scene_Credit
  7.   CREDIT=<<_END_
  8. #这里输入字幕内容

  9. _END_
  10. end

  11. class Scene_Credit

  12.   def initialize(return_scene = nil)
  13.     @sprite = Sprite.new
  14.     @sprite.bitmap = Bitmap.new("Graphics/Pictures/tit")
  15.     @sprite.x = 0
  16.     @sprite.y = 0
  17.     if return_scene.nil?
  18.       return_scene = Scene_Title.new
  19.     end
  20.     @return_scene = return_scene
  21.   end
  22.   
  23.   def scene_start
  24.     credit_lines = CREDIT.split(/\n/)
  25.     credit_bitmap = Bitmap.new(576,32 * credit_lines.size)
  26.     credit_lines.each_index do |i|
  27.       line = credit_lines
  28.       credit_bitmap.draw_text(0,i * 32,576,32,line,1)
  29.     end
  30.     @credit_sprite = Sprite.new(Viewport.new(0,50,576,432))
  31.     @credit_sprite.bitmap = credit_bitmap
  32.     @credit_sprite.oy = -430
  33.     @frame_index = 0
  34.     @last_flag = false
  35.   end

  36.   def scene_end
  37.     @credit_sprite.dispose
  38.     @sprite.dispose
  39.   end
  40.   
  41.   def last?
  42.     return (@frame_index >= @credit_sprite.bitmap.height + 320)
  43.   end
  44.   
  45.   def last
  46.     if not @last_flag
  47.       Audio.bgm_fade(10000)
  48.       @last_flag = true
  49.       @last_count = 0
  50.     else
  51.       @last_count += 1
  52.     end
  53.     if @last_count >= 300
  54.       $scene = @return_scene
  55.     end
  56.   end
  57.   
  58.   def update
  59.     @frame_index += 1
  60.     return if cancel?
  61.     last if last?
  62.     @credit_sprite.oy += 1
  63.   end

  64.   def cancel?
  65.     if Input.trigger?(Input::B)
  66.       $scene = @return_scene
  67.       return true
  68.     end
  69.     return false
  70.   end

  71.   def main
  72.     scene_start
  73.     # 过渡
  74.     Graphics.transition
  75.     # 主循环
  76.     loop do
  77.       Graphics.update
  78.       Input.update
  79.       update
  80.       if $scene != self
  81.         break
  82.       end
  83.     end
  84.     # 准备过渡
  85.     Graphics.freeze
  86.     scene_end
  87.   end
  88. end
  89. #==============================================================================
复制代码
$scene = Scene_Credit.new




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1