赞 | 1 |
VIP | 0 |
好人卡 | 12 |
积分 | 2 |
经验 | 52910 |
最后登录 | 2024-8-20 |
在线时间 | 835 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 196
- 在线时间
- 835 小时
- 注册时间
- 2012-9-16
- 帖子
- 1811
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
场景篇 动手改标题(二)
呃,由于我的偷懒,现在才法伤第二弹~话说这次教程完全偷工减料,希望众位来交作业哈~
上期教程:(小y的RGSS2脚本第一蛋)http://rpg.blue/thread-345768-1-1.html
上期交作业的人:@gz29767562
好了,废话咱就不罗嗦,开始讲吧~
好了,首先我们先看到scene_title,上次我们修改到了背景。但是,今天,我要给大家一个很华丽的效果。
那就是背景移动!
不过呢,大家要准备的背景最好是可循环的,比如默认的远景图素材里的蓝天,就是左右是循环播放和吻合的。- 我们上期还说到了合并。即简化脚本。所以,我们先看到开始处理:
- def start
- super
- load_database # 载入数据库
- create_game_objects # 生成游戏对象
- check_continue # 判断继续是否有效
- create_title_graphic # 生成标题画面图像
- create_command_window # 生成指令窗口
- play_title_music # 播放标题画面音乐
- end
复制代码 我们知道,生成标题画面图像的位置在这儿:- def create_title_graphic
- [url=home.php?mod=space&uid=114926]@sprite[/url] = Sprite.new
- @sprite.bitmap = Cache.system("天空")
- end
复制代码 就好像等号的作用一样,系统自动开始处理的时候,处理到其实就是读取了里的内容,所以,我们现在将它合并:- def start
- super
- load_database # 载入数据库
- create_game_objects # 生成游戏对象
- check_continue # 判断继续是否有效
- @sprite = Sprite.new
- @sprite.bitmap = Cache.system("天空")
- create_command_window # 生成指令窗口
- play_title_music # 播放标题画面音乐
- end
复制代码 而之前的def create_game_graphic就不用了(别忘了删除end)
这样,就合并好了~
同理,我们也把开始处理的其他给合并一下:- def start
- super
- load_database # 载入数据库
- create_game_objects # 生成游戏对象
- @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
- @sprite = Sprite.new
- @sprite.bitmap = Cache.system("天空")
- create_command_window # 生成指令窗口
- play_title_music # 播放标题画面音乐
- end
复制代码 就先这样吧,当然,如果全部合并的话开始处理就会很乱了(内容太多)
好了,再来看到update吧,意思是更新。
就像并行处理一样,update会每时每刻自动的刷新里面的内容。
好了,我们在更新里加入这一句:- @sprite.ox += 4 if Graphics.frame_count % 2 == 0
复制代码 这是什么意思呢?sprite其实是刚才那个标题画面图片sprite的在脚本中的名字。
ox则是图片的x,我就不多说了。
此时,我们会看到这种效果:
图片直接滚动走了!那怎么办?我们先别急,先确定下图片的大小。
标题图片的大小,png格式的可以直接看到,jpg的话可以借助图片查看器或者是图片编辑工具(如PS、美图秀秀什么的)去看看。
我是直接把他转成png形式的了。
我的标题图片大小是640X640,所以,我们在开始处理里加上几句,变成这样:- #--------------------------------------------------------------------------
- # ● 开始处理
- #--------------------------------------------------------------------------
- def start
- super
- load_database # 载入数据库
- create_game_objects # 生成游戏对象
- @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
- @sprite = Plane.new(Viewport.new(0, 0, 640, 640))
- @sprite.bitmap = Cache.system("天空")
- create_command_window # 生成指令窗口
- play_title_music # 播放标题画面音乐
- end
复制代码 现在图片是plane.new
这是什么意思呢,为什么要这么换?
我们看到编辑器里的Spriteset_Map脚本。- def create_parallax
- @parallax = Plane.new(@viewport1)
- @parallax.z = -100
- end
复制代码 怎么样,懂了吧?
现在我们的图片可是循环着滚动了哦~~~
由于静态图片显示不出效果所以在这里我就不截图了~~
另外顺便注意一下,之前的640,640是自己标题图片的大小。
现在的效果很酷吧?我们可以仿照这个,再做个动态效果试试吧~~不过我懒得试了。。
然后呢,我们来让标题画面的选项滑动进入吧~
上次我们选项窗口的y坐标貌似是348?我们先说说如何从下面滑动出现。
先改下坐标,使窗口先离开屏幕~好了,我们再次看到update。记得这种滑动效果我以前编写的一个菜单脚本里就有这种效果。
加上这一句:- if @command_window.y <= 348
- else
- @command_window.y -= 2
- end
复制代码 其中348是原来窗口的y坐标。我们之前说过if是判定意思。
这个判定句意思是如果这个选项窗口的y坐标小于(或等于)348,那么就什么都不做,否则他的y坐标就-2.
为什么-2呢?因为这是update,可以一直判定。这个2如果改的很大的话,那就会很突然。
好了,效果如图:
对了,既然我们的标题图都滚动的了,那标题文字怎么办呢?
别担心,这样做:
标题的图片就是单纯一个背景图。而标题文字另外做一张图,背景为透明。
然后命名。- @sprite = Sprite.new
- @sprite.bitmap = Cache.system("天空")
复制代码 然后仿照这一句在开始处理里再加上,我们举个例子,
标题文字的图片文件名为“文字”,然后我们可以这么写:- @titletext = Sprite.new
- @titletext.bitmap = Cache.system("文字")
复制代码 这里文字的那个定义名是titletext,也可以换成其他的。
当然别忘了在结束处理那里加上:- @titletext.bitmap.dispose
- @titletext.dispose
复制代码 注意,这里的titletext必须和前面显示图片哪里一样
我举例用的是titletext,也可以换其他的。
好了本期就是这样,其他等会儿我再编辑 |
|