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

Project1

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

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

[复制链接]

Lv1.梦旅人

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

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

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

x
本帖最后由 yangjunyin2002 于 2014-1-14 13:25 编辑


场景篇
                                                                 动手改标题(一)

        哈罗~我是y君...(我不知道怎么开头了= =)
        首先,我们来打开脚本编辑器~

        恩,这就是脚本编辑器啦~(版主乱入:尼玛别啰嗦!~)
我们可以看到“▼ 场景”。首先,我们来认识一下scene,其实就是场景的意思。我们可以看到,下面有scene_menu等等的脚本。
那么,场景是什么呢?
就比如菜单吧,他就是一个场景,地图也是一个单独的场景。我们平常都是在地图场景中,而在地图上的行走也由这个“map”场景来处理喽~
我们先看到scene_Title吧~

首先映入眼帘的是这一段脚本:

  1.   #--------------------------------------------------------------------------
  2.   # ● 主处理
  3.   #--------------------------------------------------------------------------
  4.   def main
  5.     if $BTEST                         # 战斗测试的情况下
  6.       battle_test                     # 开始战斗测试处理
  7.     else                              # 普通游戏的情况下
  8.       super                           # 原来的主处理
  9.     end
  10.   end
复制代码
恩,这一段是什么意思?我们可以对照注释来看。
在脚本中,一般#之后的文字都只是注释用的,和脚本没什么用。一般在编辑器里颜色为绿色~
我们先来认识一下几个简单的RUBY语句吧:
  1. if...else
复制代码
众所周知,if是如果的意思。也就是说if是用来判定的,而if后面的就是如果XXX,而else就是否则,如果你这么写:
  1.     if Input.trigger?(Input::B)
复制代码
他的意思就是指:如果按下了按钮B(在rm对应中是esc键)
然后接下来就处理了。



话不多说,我们可以看到,这个Title脚本,有这些语句:
  1.   def start
  2.   def dispose
  3.   def terminate
复制代码
我们来说说def...的形式吧。
一般,每个场景脚本至少应该都有start、dispose、terminate这样的,他们的意思分别是开始处理、刷新处理、结束处理。
  1.   #--------------------------------------------------------------------------
  2.   # ● 开始处理
  3.   #--------------------------------------------------------------------------
  4.   def start
  5.     super
  6.     load_database                     # 载入数据库
  7.     create_game_objects               # 生成游戏对象
  8.     check_continue                    # 判断继续是否有效
  9.     create_title_graphic              # 生成标题画面图像
  10.     create_command_window             # 生成指令窗口
  11.     play_title_music                  # 播放标题画面音乐
  12.   end
复制代码
这是标题画面的def start。既然是开始处理,那么系统处理脚本的时候一定是先读取这儿~
super我们以后再讲,先看到create_command_window,根据右边的注释,意思就是“生成指令窗口”
而我们正好可以看到后面有这么一段:
  1.   def create_command_window
  2.     s1 = Vocab::new_game
  3.     s2 = Vocab::continue
  4.     s3 = Vocab::shutdown
  5.     @command_window = Window_Command.new(172, [s1, s2, s3])
  6.     @command_window.x = (544 - @command_window.width) / 2
  7.     @command_window.y = 288
  8.     if @continue_enabled                    # 继续有效的情况下
  9.       @command_window.index = 1             # 光标位置符合
  10.     else                                    # 无效的情况下
  11.       @command_window.draw_item(1, false)   # 指令以半透明显示
  12.     end
  13.     @command_window.openness = 0
  14.     @command_window.open
  15.   end
复制代码
也就是说,既然前面开始处理有生成指令窗口了,而这个就是生成指令窗口的内容。
其中,最重要的就是这一句了:
  1. @command_window = Window_Command.new(172, [s1, s2, s3])
复制代码
@、$等等都是一种变量,一般在这种都用@。
“=”是算是定义的意思,这里,@command_window就调用了command的窗口。这个窗口以后再讲,是经常被调用的选项窗口。
这个指令窗口总得有内容吧,我们可以看到[s1,s2,s3],而在前面就有这么几句:
  1.     s1 = Vocab::new_game
  2.     s2 = Vocab::continue
  3.     s3 = Vocab::shutdown
复制代码
既然知道等号的作用,我们可以这样改写:
  1.    @command_window = Window_Command.new(172, [Vocab::new_game, Vocab::continue, Vocab::shutdown])
复制代码
然而,vocab一定代表着什么,不然,怎么会标题出现的选项是“开始游戏”、“继续”、“退出游戏”呢?
我们在数据库里可以设置这个,而在数据库设置就相当于更改了voacb的new_game、continue、shutdown的代表的文字
我们能不能从脚本上改呢?可以!
但是记住一定要加上""双引号。
  1. @command_window = Window_Command.new(172, [“开始”, "继续", "结束"])
复制代码
于是,效果就成了这个样子:

但是我们发现,这个选项框太长了,怎么办呢?
再看到这一句:
  1. @command_window = Window_Command.new(172, [“开始”, "继续", "结束"])
复制代码
括号中的172代表着什么?答案是这个选项指令窗口的宽度!
哈哈,那我们调整到132试试吧!效果大家自己试试。
调整好后,的确,窗口变窄了。
此时,可能有人会问:既然可以改宽度,那么高度在哪里改呢?这里我们先不说(=-=)
我们还是先在  "结束"]   的后面加上
  1. ,3
复制代码
看看这个数值代表什么。

然后我们发现了这个奇葩的现象...这样子,似乎窗口就横过来了?
可是,宽度很小。所以,我们把宽度先加大吧~恩,大概242就行了~
这时候,我们发现了,效果十分完美~窗口选项完全横过来了~
而之前的“,3”的3代表着选项数。因为我们有三个选项,所以写3~

可是这样我们的窗口有些偏上,严重影响美观!
肿么破?= -=!!其实很简单,我们往下看,找到这一句:
  1.     @command_window.x = (544 - @command_window.width) / 2
  2.     @command_window.y = 288
复制代码
我们已经知道@command_window代表选项窗口。而.x和.y又是什么意思呢?
数学里一般都会有的,x轴和y轴,在RM中是按照像素的。
1像素很小,而我们的游戏窗口默认是544X416像素。
我们可以先把这个窗口的y加大,把288改成348吧?(但是默认窗口一共只有416,如果我们的y轴超过的话就看不到了哦~)
恩,效果不错~自己尝试,这里暂时不放效果图吧...


"喂,Y君,标题画面背景好麻烦还要改文件名肿么破啊= ="在小y滔滔不绝讲脚本的时候,某君问我。
于是,咱就教各位利用脚本解决这个麻烦把。我们先准备一张标题图片,放在Graphics\System中。
在这里,小y用的背景图名字叫“天空.jpg”
RM默认,先用png格式的,jpg格式的也会用。所以建议不要和其他重名了哦~
之前呢,我们在start看到一个生成标题图像,那一定就是背景图啦~所以,找到
  1.   def create_title_graphic
  2.     @sprite = Sprite.new
  3.     @sprite.bitmap = Cache.system("Title")
  4.   end
复制代码
bitmap意思似乎就是图片?然后呢,sprite先不讲,是精灵类,就好像我们这个场景类一样,但是精灵类是处理各种动态效果什么的~
我们看到cache.system了吧?system,就是刚才我们放图片的目录!
然后后面是一个(“Title”),就是默认的标题画面的文件名。在这里,改成你自己的放入的标题图片的文件名就好啦~
我在这里改成的是天空
现在,再来看看效果吧。(不要吐槽背景呵呵= =...=-=我只是=-=||我只是从默认RTP素材的远景图素材里拿的。。。)
另外小y懒得在图上加上标题文字了,大家自己加吧各位= =-----_---------||

呵呵,这效果可比原来的好了很多呢~

恩,到这里我们只是说说对场景类脚本的超超超超级简单小修改!
我们再来说一说结束处理什么的吧~
  1.   #--------------------------------------------------------------------------
  2.   # ● 结束处理
  3.   #--------------------------------------------------------------------------
  4.   def terminate
  5.     super
  6.     dispose_command_window
  7.     snapshot_for_background
  8.     dispose_title_graphic
  9.   end
复制代码
结束处理,当然就是我们离开这个场景的时候的处理,就比如我们离开标题(点开始到地图就转换了场景,点继续其实也转换成了存档的场景)就要执行结束处理。
我们可以看到一个dispose的句子,分别是针对command_window和title_graphic,就是结束了背景图和选项窗口。
而背景图和选项窗口其实是在这里结束的。
  1.   def dispose_title_graphic
  2.     @sprite.bitmap.dispose
  3.     @sprite.dispose
  4.   end
复制代码
这里就是释放标题画面的背景图。我们也可以将他们合并:
  1.   #--------------------------------------------------------------------------
  2.   # ● 结束处理
  3.   #--------------------------------------------------------------------------
  4.   def terminate
  5.     super
  6.     dispose_command_window
  7.     snapshot_for_background
  8.     @sprite.bitmap.dispose
  9.     @sprite.dispose
  10.   end
复制代码
同理,标题场景里,指令窗口的结束也有这么一句,我们也可以合并。

详细下期我们再说~





那么,改标题(一)就结束啦~然后放上今天的作业和下期预告~~

今天作业是:

1、将标题画面窗口修改成横排
2、将窗口的坐标调到最上方(今天学的是调到了下面)
3、不借助数据库修改标题的选项名
4、不修改文件名来改标题图片(随意图片)

然后呢,欢迎大家交作业,只要效果达成就行,还有糖吃哦~~~60经验!!!!
另外有问题什么的可以在本主题回复或论坛发消息私信我谢谢~~~




下期预告:
1、继续认识场景类脚本的特点
2、动手改标题,增加标题选项
3、写一个作者の话的小场景脚本,可在菜单中调用
4、透明化选项窗口

预告图片:

作者画面图严重偷工减料,完全是随意复制六道陈国里的菜单背景图= =。。。


顺便@一些人:
@576437081 @天地有正气


——旧坑欢迎戳

Lv3.寻梦者

○赛

梦石
0
星屑
1249
在线时间
1276 小时
注册时间
2013-1-22
帖子
2246

贵宾

2
发表于 2014-1-14 17:49:58 | 只看该作者
看到了...很不错的教程呢...我不会RGSS2,希望继续!加油~
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
432
在线时间
4175 小时
注册时间
2010-6-26
帖子
6474
3
发表于 2014-1-14 18:00:33 | 只看该作者
请问您打算把这个教程做成《柳橙学堂》里面的图文教学吗?

点评

OK~  发表于 2014-1-15 07:55
潜水,专心忙活三次元工作了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
182 小时
注册时间
2009-4-22
帖子
208
4
发表于 2014-1-14 23:16:00 | 只看该作者
喜欢,正为标题发愁呢
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
182 小时
注册时间
2009-4-22
帖子
208
5
发表于 2014-1-15 00:37:19 | 只看该作者
交作业咯

工程.zip

402.82 KB, 下载次数: 45

点评

呼呼,质量很好,但是你可以换下窗口的那个window.png的素材啊!然后就是背景图太小了。你可以改成544X416的  发表于 2014-1-15 07:53

评分

参与人数 2星屑 +61 收起 理由
kuerlulu + 1 其实可以加一层白底然后这个图片居中感觉会.
yangjunyin2002 + 60 交作业奖励~~

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-10 11:08

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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