Project1
标题: 【脚本】简洁字幕 ver 1.0 [打印本页]
作者: 羁绊的守望者 时间: 2014-11-1 14:06
标题: 【脚本】简洁字幕 ver 1.0
今天找了字幕脚本,结果全都出错,无奈只好自己动手了。
这个脚本直接放进去不会生效,需要进行修改。
默认播放的音乐名是End Credits
显示的背景图是远景里的001-Sky01
召唤字幕的方法是$scene = Scene_Credit.new
默认返回标题画面
具体看脚本里的改吧
有空我会补上一些相关教程
#=============================================================================
# ■ 简洁字幕 ver 1.0 (Scene_Credit)
#=============================================================================
# 作者:羁绊的守望者 (66RPG ID)
#=============================================================================
class Scene_Credit
TEXT = <<END_CREDIT
静夜思
[唐]李白
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
END_CREDIT
end
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[i],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
#=============================================================================
# ■ 简洁字幕 ver 1.0 (Scene_Credit)
#=============================================================================
# 作者:羁绊的守望者 (66RPG ID)
#=============================================================================
class Scene_Credit
TEXT = <<END_CREDIT
静夜思
[唐]李白
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
END_CREDIT
end
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[i],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
作者: chd114 时间: 2014-11-1 14:35
来张图吧···这个一般用在什么地方呢···
作者: taroxd 时间: 2014-11-1 15:17
咱觉得还是喵呜喵游戏里,ED的播放lrc比较良心
作者: RyanBern 时间: 2014-11-1 21:36
本帖最后由 RyanBern 于 2014-11-2 20:44 编辑
可能出现的问题:
1.如果TEXT为空会发生RGSSError
几个个人方面的建议:
1.变量还可以精简下,不必用到的变量目前发现有@return_scene和局部变量y(控制那个循环可以用@sprite.y控制)。
2.为什么要用平面来生成图形呢?是为了能够无缝拼接吗?其实很少有人使用Panorama里面的图片当背景,所以还是单纯的Sprite为好。
3.用Window作为载体看起来好不习惯,建议使用Sprite+Viewport,好处是结构简单,而且可以限制字幕在屏幕上的区域(Viewport的神奇作用)
↓瞎改的,最好不要用
class Scene_Credit
TEXT = <<END_CREDIT
静夜思
[唐]李白
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
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[i], 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
class Scene_Credit
TEXT = <<END_CREDIT
静夜思
[唐]李白
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
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[i], 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
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |