赞 | 1 |
VIP | 0 |
好人卡 | 12 |
积分 | 2 |
经验 | 52910 |
最后登录 | 2024-8-20 |
在线时间 | 835 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 196
- 在线时间
- 835 小时
- 注册时间
- 2012-9-16
- 帖子
- 1811
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 yangjunyin2002 于 2014-1-26 16:39 编辑
场景篇
动手改标题(三)
欢迎来到最后一期动手改标题教程~以后我会教各位改菜单、写出其他场景等,然后场景篇结束……
第一弹地址:http://rpg.blue/thread-345768-1-1.html
第二弹地址:http://rpg.blue/thread-346051-1-1.html
@gz29767562 @kava @廢柴郡 @が冷胤轩ゎ
本期内容:
1、修改窗口透明度
2、标题使用素材放入Title文件夹中~
3、文字滑动进入
4、增加选项
注意:
小y原来的用来改脚本的教程的工程已经被我改装成了整合系统的工程...于是乎,原来改好的那部分我也没了。。。
所以呢,我们这次没有效果图……
好了,上次我们讲到了在标题里再加个“文字”的图片,这次,我们就先让他滑动进入吧:
上次,我们的文字代码是这样的:- @titletext = Sprite.new
- @titletext.bitmap = Cache.system("文字")
复制代码 那么,我们也知道如何让选项滑动进入,那我们可以依样画葫芦:
在update(刷新)里加上这一句:- if @titletext.x >= 0
- else
- @titletext.x += 2
- end
复制代码 这一句,我们是判定X轴,如果图片X大于0,那么,就不处理,否则图片X不停地+2.
我们测试一下,可是没效果?
没关系,因为我们忘记了一个步骤,
再之前我们让选项滑动进入的时候,要先把选项移到外面去。
我们也照样把图片移过去:titletext就是之前显示“文字”图片所代表的一个量。
为什么这里是OX呢?图片,
和窗口不同,我也在这里就不多讲了,只要大家记住:
图片的x、y轴是ox和oy
这时,我们发现一个问题,OX明明是-10,可为什么图片会往右偏呢?
那么,我们就这样认为好了:x和y轴都是倒过来的!
如果这样的话,我们要让图片从左边进来,那么就用544+10来代替-10吧。
相应的update那里也要改下。
可是,我们这样测试一遍,还是无效?
原因在于我们update那里没有把x和y改成ox和oy~!!!
好了测试一下~完美成功~效果,
哈哈,文字就也是动态滑动进入了~
然后,我们来说说素材吧
我们在显示位图的时候,都有这么一句:还有这样的语句:等等。
我们来说说cache吧
我们可以在脚本编辑器里找到Cache的脚本,我们看到注释:- #==============================================================================
- # ■ Cache
- #------------------------------------------------------------------------------
- # 本模组载入所有图像,建立并保存Bitmap物件。为加快载入速度并节省内存,
- # 本模组将以建立的bitmap物件保存在内部哈希表中,使得程序在需求已存在
- # 的图像时能快速读取bitmap物件。
- #=============================================================================
复制代码 我们先不管哈希表什么的。先看看注释,我们发现:
Cache就是用来载入图像并建立保存Bitmap物件的!
那么,我们往下看:- def self.system(filename)
- load_bitmap("Graphics/System/", filename)
- end
复制代码 第一行的system就是之前cache.system调用到的。
然后读取的图片就是第二行里的Graphics/System文件夹里的
既然这样,我们也依照上面的写这样一段:- def self.title(filename)
- load_bitmap("Graphics/Title/", filename)
- end
复制代码 OK!这样就完成了:
我们把前面的背景图、文字的图片都换成的吧~~~
今天的教程量很少...脚本方面的知识也基本没有...
我们再说说如何改变透明度吧。
我们首先关注一个很重要的词:
opacity
这是什么?谷歌翻译一下:
不透明度!
RM里的不透明度在设置事件移动路线里就有,
不透明度的数值是0-225之间!
0就是透明了,225就是一点儿都没有透明。
之前,菜单我们就看到过- @command_window.x
- @command_window.y
复制代码 后面有个等号,等号是代表上面两句的量。
那么我们这样写(找到上面那两句,在后面加上,之前已经改动过)- @command_window.opacity = XXX
复制代码 XXX我们可以自己改,当然是要0-225的数,否则就会出错!
我们把它改成0来试试吧。~~~
我们就可以看到,窗口变透明了~~~
我也在开头说过我没有原来的工程了,但是结合以前的修改内容,
效果一定是很好的!
最后,我们来看看给窗口增加选项吧。
之前我们吧窗口改成了这个样子:- def create_command_window
- @command_window = Window_Command.new(172, ["开始", "继续", "结束"])
复制代码 那么我们再加一下就可以了。- def create_command_window
- @command_window = Window_Command.new(172, ["开始", "继续", "新选项", "结束"])
复制代码 如果你之前改过的话,像前面一弹那样改成横的,别忘了增加, ["开始", "继续", "新选项", "结束"]前的数值哦~
(172是默认数值,之前我们改成了其他了的,只是我说过了没工程只能这一蛋从默认title脚本里改)- @command_window.update
- if Input.trigger?(Input::C)
- case @command_window.index
- when 0 #New game
- command_new_game
- when 1 # Continue
- command_continue
- when 2 # Shutdown
- command_shutdown
- end
- end
- end
复制代码 然后,我们来详细了解一下这个,很多人会改,但是不知道其原理!
先看到第一行,command选项窗口的刷新,可以无视了。
而第二行则是按键的判定。第三行:- case @command_window.index
复制代码 这是一个语句的写法。是一command选项窗口的光标位置。我们先看到菜单脚本(scene_menu)
初始化这儿写了这个:menu_index和command_index差不多。
开始都是0.他管理着光标的移动。
0就是光标在第一个选项上,1就是光标在第二个选项上……
case不多说,case相当于判定的if一样,因为是一定的数值,而且是0-x之间的数值。这个x就是最大光标
这样,我们在下面就可以判定了。
看看第二行,说明这是在按下C键(键盘上的回车/空格)之后处理的;
平常,我们按下后就是跳转界面了,这里的第三句,
就是根据判断@command_window.index是什么,然后执行下面的内容。
比如,目前@command_window.index是0(也就是目前光标在选项1上)
那么,下面这儿:- when 0 #New game
- command_new_game
- when 1 # Continue
- command_continue
- when 2 # Shutdown
- command_shutdown
复制代码 也就会执行when 0下面的内容。
我们也照样写一句:- when 0 #New game
- command_new_game
- when 1 # Continue
- command_continue
- when 2 #新选项
- XXXXXXXXX
- when 3 # Shutdown
- command_shutdown
复制代码 像我第二弹说的一样,这儿可以合并,把下面对应def里的复制替换就行了。
(注意,这里新选项处理在when 2是因为我之前新加的选项就是结束选项前那个)
我们还是来理解一下command_XXX后面那儿吧。
举这个例子:- def command_shutdown
- Sound.play_decision
- RPG::BGM.fade(800)
- RPG::BGS.fade(800)
- RPG::ME.fade(800)
- $scene = nil
- end
复制代码 这就是前面选项那个when执行的。
第一行无视,第二行,其实就是声效。
就是光标选择确定的光效。记住,此时我们已经是按下C键的,因为这些语句都是已经在按键判定后了。
接下来三行就是声音的停止,800是帧数,BGM/BGS/ME就不用多说了吧=-=
$scene = nil就是没有场景,也就是说游戏结束了。nil是代表没有的意思
既然这样,前面那儿我们这么改:- when 0 #New game
- command_new_game
- when 1 # Continue
- command_continue
- when 2 #新选项
- Sound.play_decision
- when 3 # Shutdown
- command_shutdown
复制代码 就是加个音效,音效后面可以仿照菜单里when XXX后面那里的场景变换来改,起到转到其他场景的效果。。。
好了,本期就是这么结束了,这次的作业:
1、把选项窗口透明度设置为100(大约是半透明)
2、让文字图片从上面往下滑动进入
3、只要把背景图设置移动到Title文件夹就OK了。
本次作业只需要提供效果图(包括文件夹效果图)
才可以哦~
交作业的有大量EXP!!!
@protosssonny P叔过来围观下吧~
|
|