class Window_Credit < Window_Base
def initialize(text)
super(0,480,640,128 * text.size)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
for i in 0...text.size
self.contents.draw_text(0,i*32,640,32,text,1)
end
end
end
class Scene_Credit
def main
Audio.bgm_play("Audio/BGM/End Credits", 100, 100)
@sprite = Plane.new
@sprite.bitmap = Bitmap.new("Graphics/Panoramas/001-Sky01")
@return_scene = Scene_Title.new
@text = TEXT.split("\n")
@window_credit = Window_Credit.new(@text)
y = 0
Graphics.transition
while y != @window_credit.height
y += 2
@window_credit.y -= 2
Graphics.update
end
@window_credit.dispose
@sprite.bitmap.dispose
@sprite.dispose
Graphics.freeze
$scene = @return_scene
end
end [/pre]
END_CREDIT
end
class Sprite_Credit < Sprite
def initialize(text, viewport = nil)
super(viewport)
# 根据显示区域的不同改变那个w
w = 640
self.bitmap = Bitmap.new(w, text.size == 0 ? 1 : text.size * 32)
refresh
end
def refresh
for i in 0...text.size
self.bitmap.draw_text(0,i*32,640,32,text, 1)
end
end
end
class Scene_Credit
def main
Audio.bgm_play("Audio/BGM/End Credits", 100, 100)
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title("001-Title01")
@view = Viewport.new(50, 50, 400, 200)
@sprite_credit = Sprite_Credit.new(TEXT.split("\n"), @view)
@sprite_credit.y = @view.rect.height
Graphics.transition
while @view.oy <= @sprite_credit.bitmap.height + @view.rect.height
@view.oy += 2
Graphics.update
end
Graphics.freeze
@sprite_credit.dispose
@view.dispose
@sprite.bitmap.dispose
@sprite.dispose
$scene = Scene_Title.new
end
end[/pre]