设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2075|回复: 2
打印 上一主题 下一主题

[RMVX发布] 【教程】小y的RGSS2脚本教程-第三弹

[复制链接]

Lv1.梦旅人

梦石
0
星屑
196
在线时间
835 小时
注册时间
2012-9-16
帖子
1811
跳转到指定楼层
1
发表于 2014-1-26 16:11:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

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原来的用来改脚本的教程的工程已经被我改装成了整合系统的工程...于是乎,原来改好的那部分我也没了。。。
所以呢,我们这次没有效果图……


好了,上次我们讲到了在标题里再加个“文字”的图片,这次,我们就先让他滑动进入吧:
上次,我们的文字代码是这样的:
  1.     @titletext = Sprite.new
  2.     @titletext.bitmap = Cache.system("文字")
复制代码
那么,我们也知道如何让选项滑动进入,那我们可以依样画葫芦:
在update(刷新)里加上这一句:
  1.     if @titletext.x >= 0
  2.     else
  3.       @titletext.x += 2
  4.     end
复制代码
这一句,我们是判定X轴,如果图片X大于0,那么,就不处理,否则图片X不停地+2.
我们测试一下,可是没效果?
没关系,因为我们忘记了一个步骤,
再之前我们让选项滑动进入的时候,要先把选项移到外面去。
我们也照样把图片移过去:
  1.     @titletext.ox = -70
复制代码
titletext就是之前显示“文字”图片所代表的一个量。
为什么这里是OX呢?图片,
和窗口不同,我也在这里就不多讲了,只要大家记住:
图片的x、y轴是ox和oy

这时,我们发现一个问题,OX明明是-10,可为什么图片会往右偏呢?
那么,我们就这样认为好了:x和y轴都是倒过来的!
如果这样的话,我们要让图片从左边进来,那么就用544+10来代替-10吧。
相应的update那里也要改下。

可是,我们这样测试一遍,还是无效?
原因在于我们update那里没有把x和y改成ox和oy~!!!
好了测试一下~完美成功~效果,
哈哈,文字就也是动态滑动进入了~

然后,我们来说说素材吧
我们在显示位图的时候,都有这么一句:
  1. Cache.system("图片")
复制代码
还有这样的语句:
  1. Cache.picture("图片")
复制代码
等等。
我们来说说cache吧
我们可以在脚本编辑器里找到Cache的脚本,我们看到注释:
  1. #==============================================================================
  2. # ■ Cache
  3. #------------------------------------------------------------------------------
  4. #  本模组载入所有图像,建立并保存Bitmap物件。为加快载入速度并节省内存,
  5. #  本模组将以建立的bitmap物件保存在内部哈希表中,使得程序在需求已存在
  6. #  的图像时能快速读取bitmap物件。
  7. #=============================================================================
复制代码
我们先不管哈希表什么的。先看看注释,我们发现:
Cache就是用来载入图像并建立保存Bitmap物件的!
那么,我们往下看:
  1.   def self.system(filename)
  2.     load_bitmap("Graphics/System/", filename)
  3.   end
复制代码
第一行的system就是之前cache.system调用到的。
然后读取的图片就是第二行里的Graphics/System文件夹里的

既然这样,我们也依照上面的写这样一段:
  1.   def self.title(filename)
  2.     load_bitmap("Graphics/Title/", filename)
  3.   end
复制代码
OK!这样就完成了:
我们把前面的背景图、文字的图片都换成
  1. Cache.title
复制代码
的吧~~~

今天的教程量很少...脚本方面的知识也基本没有...
我们再说说如何改变透明度吧。
我们首先关注一个很重要的词:
opacity
这是什么?谷歌翻译一下:
不透明度!
RM里的不透明度在设置事件移动路线里就有,
不透明度的数值是0-225之间!
0就是透明了,225就是一点儿都没有透明。
之前,菜单我们就看到过
  1. @command_window.x
  2. @command_window.y
复制代码
后面有个等号,等号是代表上面两句的量。
那么我们这样写(找到上面那两句,在后面加上,之前已经改动过)
  1. @command_window.opacity = XXX
复制代码
XXX我们可以自己改,当然是要0-225的数,否则就会出错!
我们把它改成0来试试吧。~~~
我们就可以看到,窗口变透明了~~~
我也在开头说过我没有原来的工程了,但是结合以前的修改内容,
效果一定是很好的!

最后,我们来看看给窗口增加选项吧。
之前我们吧窗口改成了这个样子:
  1.   def create_command_window
  2.     @command_window = Window_Command.new(172, ["开始", "继续", "结束"])
复制代码
那么我们再加一下就可以了。
  1.   def create_command_window
  2.     @command_window = Window_Command.new(172, ["开始", "继续", "新选项", "结束"])
复制代码
如果你之前改过的话,像前面一弹那样改成横的,别忘了增加, ["开始", "继续", "新选项", "结束"]前的数值哦~
(172是默认数值,之前我们改成了其他了的,只是我说过了没工程只能这一蛋从默认title脚本里改)
  1.     @command_window.update
  2.     if Input.trigger?(Input::C)
  3.       case @command_window.index
  4.       when 0    #New game
  5.         command_new_game
  6.       when 1    # Continue
  7.         command_continue
  8.       when 2    # Shutdown
  9.         command_shutdown
  10.       end
  11.     end
  12.   end
复制代码
然后,我们来详细了解一下这个,很多人会改,但是不知道其原理!
先看到第一行,command选项窗口的刷新,可以无视了。
而第二行则是按键的判定。第三行:
  1.       case @command_window.index
复制代码
这是一个语句的写法。
  1. @command_window.index
复制代码
是一command选项窗口的光标位置。我们先看到菜单脚本(scene_menu)
初始化这儿写了这个:
  1.     @menu_index = menu_index
复制代码
menu_index和command_index差不多。
开始都是0.他管理着光标的移动。
0就是光标在第一个选项上,1就是光标在第二个选项上……
case不多说,case相当于判定的if一样,因为
  1. @command_window.index
复制代码
是一定的数值,而且是0-x之间的数值。这个x就是最大光标
这样,我们在下面就可以判定了。
看看第二行,说明这是在按下C键(键盘上的回车/空格)之后处理的;
平常,我们按下后就是跳转界面了,这里的第三句,
就是根据判断@command_window.index是什么,然后执行下面的内容。
比如,目前@command_window.index是0(也就是目前光标在选项1上)
那么,下面这儿:
  1.       when 0    #New game
  2.         command_new_game
  3.       when 1    # Continue
  4.         command_continue
  5.       when 2    # Shutdown
  6.         command_shutdown
复制代码
也就会执行when 0下面的内容。
我们也照样写一句:
  1.       when 0    #New game
  2.         command_new_game
  3.       when 1    # Continue
  4.         command_continue
  5.       when 2    #新选项
  6.         XXXXXXXXX
  7.       when 3    # Shutdown
  8.         command_shutdown
复制代码
像我第二弹说的一样,这儿可以合并,把下面对应def里的复制替换就行了。
(注意,这里新选项处理在when 2是因为我之前新加的选项就是结束选项前那个)

我们还是来理解一下command_XXX后面那儿吧。
举这个例子:
  1.   def command_shutdown
  2.     Sound.play_decision
  3.     RPG::BGM.fade(800)
  4.     RPG::BGS.fade(800)
  5.     RPG::ME.fade(800)
  6.     $scene = nil
  7.   end
复制代码
这就是前面选项那个when执行的。
第一行无视,第二行,其实就是声效。
就是光标选择确定的光效。记住,此时我们已经是按下C键的,因为这些语句都是已经在按键判定后了。
接下来三行就是声音的停止,800是帧数,BGM/BGS/ME就不用多说了吧=-=
$scene = nil就是没有场景,也就是说游戏结束了。nil是代表没有的意思

既然这样,前面那儿我们这么改:
  1.       when 0    #New game
  2.         command_new_game
  3.       when 1    # Continue
  4.         command_continue
  5.       when 2    #新选项
  6.         Sound.play_decision
  7.       when 3    # Shutdown
  8.         command_shutdown
复制代码
就是加个音效,音效后面可以仿照菜单里when XXX后面那里的场景变换来改,起到转到其他场景的效果。。。




好了,本期就是这么结束了,这次的作业:
1、把选项窗口透明度设置为100(大约是半透明)
2、让文字图片从上面往下滑动进入
3、只要把背景图设置移动到Title文件夹就OK了。

本次作业只需要提供效果图(包括文件夹效果图)
才可以哦~

交作业的有大量EXP!!!


@protosssonny P叔过来围观下吧~

——旧坑欢迎戳

Lv1.梦旅人

梦石
0
星屑
196
在线时间
835 小时
注册时间
2012-9-16
帖子
1811
3
 楼主| 发表于 2014-1-27 12:36:48 | 只看该作者
kuerlulu 发表于 2014-1-26 20:08
交作业替换原定义即可 白字↓↓
def create_command_window
    @command_window = Window_Comman ...

我也是个脚本废啊、、、、、、、5555

点评

LZ不要灰心,脚本不是一天写成的,我相信你!  发表于 2014-1-27 14:14

——旧坑欢迎戳
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

2
发表于 2014-1-26 20:08:35 | 只看该作者
交作业替换原定义即可 白字↓↓
def create_command_window
    @command_window = Window_Command.new(172, ["开始", "继续", "结束"])
    @command_window.opacity = 100
end
# 请删掉有关ox、oy部分,后面解释,先定义@titletext.y = -70,然后把本帖上面if @titletext.x >= 0...end部分换成如下
@titletext.y += 2 unless @titletext.y >= 0

另外,一个Sprite的默认原点在左上角,y轴正方向向下,即一个上下颠倒的直角坐标系,一般我们不动它的oxoy(原点)

  -fk: -azogi:
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-29 11:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表