酆城浪子
发表于 2010-6-17 19:36:00
屏幕是640X480,
如果你确切的知道自己的图片是多大,
通过简单的计算就能得出精确到像素的位置移动了。
图片对齐用左上角对齐比较好算。
其实最简单的办法就是用PS修整一下大小比较另类的图片就OK了。
至于视频,有不少脚本,可惜我都用不来,如果有可以随心所欲的在任何时段调取视频播放的脚本千万不要忘了发布在技术发布区!!!能用FLA,AVI,格式的最好,
我一直打算在战斗中插入华丽的视频CG。。。不过那样的话估计我的游戏就是泰坦巨人的体积了
liqunsz
发表于 2010-6-17 20:26:07
引用第20楼酆城浪子于2010-06-17 19:36发表的:
能用FLA,AVI,格式的最好,我一直打算在战斗中插入华丽的视频CG。。。images/back.gif
搞错了吧,是swf,Flash动画的输出格式,可以先用Adobe提供的Encoder压成flv(自家的视频还是自家的压吧)绿软链接一枚,再在Flash里面插入视频,质量不用太高,出来的swf我觉得比AVI简单一些,最重要的是不用担心解码器的问题,超级完美!
精确地测量坐标使用Photoshop,打开【信息】面板,点右上角的地方调成以【像素】为单位,鼠标移动到哪里即为坐标,选框也一样,可以看出选框的大小及位置
建议使用RM中的【左上】对齐,图片宽度可以直接使用640,PS先做一条参考线,宽度在320px,中文字打字时选择【居中对齐】,鼠标就直接点参考线的位置,背景去掉,直接打字,换行,诗歌什么的最容易换行了
secondsen
发表于 2010-6-17 21:56:26
引用第21楼liqunsz于2010-06-17 20:26发表的:多个滚动字幕可以将定义的Scene_Credit全部附加一个_1,_2之类的,或是根据章节改名字,调用的时候就用$scene = Scene_Credit_1类似的调用就可以了....... images/back.gif
馊主意。。。。脚本能这么用么。。。。
secondsen
发表于 2010-6-17 22:12:42
class Scene_Credit
CREDIT = []
CREDIT=<<_END_
弟弟大大洞洞大大,
葫芦娃!
_END_
CREDIT=<<_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
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
secondsen
发表于 2010-6-17 22:16:06
这个脚本存在着一个巨大的BUG。。。LZ你没发现么????
就用原来你那个字幕脚本。。。至少是你传到论坛上的这个。。。你就没发现你的字幕全都写在一行上????你的字这么多行,显示的只显示一行,,,你就没有发现???
What have you done!
a565868214
发表于 2010-6-23 05:55:19
恩开始发现了
但是后来我又发现在脚本中 空格代表回车
也就是换行的话就按下空格~~
secondsen
发表于 2010-6-23 08:41:07
所以,就都写在一行上。。。晕,上面那个脚本给你改过来了。。多字幕,换行就真的是换行
a565868214
发表于 2010-6-27 00:28:57
哦~~~~
这样啊~~~感谢啊~~~收下了~~~
secondsen
发表于 2010-6-27 09:08:15
CREDIT = []
CREDIT=<<_END_
弟弟大大洞洞大大,
葫芦娃!
_END_
CREDIT=<<_END_
-----Cast------
制作工具:RPG Maker XP
Just a credit.
_END_
看到这个了不,就按照这种模式写字幕,写几个自定
用法
$scene = Scene_Credit.new("背景图片",编号,true/false)
背景图片 和 原来的脚本一样
编号参看最前边的 CREDIT中 []里面的数字。。。数组总明白吧??
第三个参数不是必须的
true 表示 返回 Title画面不写第三个参数 或者是false 表示返回Map