赞 | 13 |
VIP | 9 |
好人卡 | 3 |
积分 | 51 |
经验 | 27577 |
最后登录 | 2024-10-30 |
在线时间 | 1004 小时 |
Lv4.逐梦者 【欧皇】
- 梦石
- 3
- 星屑
- 2066
- 在线时间
- 1004 小时
- 注册时间
- 2013-8-19
- 帖子
- 3486
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 欧买歌 于 2015-1-13 17:46 编辑
大家好,脚本的用处是很多滴,事件里有,脚本编辑器有,神马都有,一旦出错就惨哩,怎样?来学习脚本吧?
如果赞的话,就给点经验或好人卡呗!毕竟是一个字一个字打出来的。
第一课:注释
大家打开scene_title,也就是标题画面处理类,看到下面有个生成命令窗口。奇怪?我怎么从没听过脚本可以用中文?那是注释,一行的前面输入“#”,“#”后面的字都会变成绿色的,注释的意思你应该懂吧?小学学古诗的时候就有注释。大家一定要多用注释功能哦!否则时间长了连作者也不知道是干什么的了,一看注释,恍然大悟!
作业:大家插入一页脚本页输入exit,看看效果会怎么样,然后加注释吧! 第二课:添加选择项
回到那个生成命令窗口那里,我们s3那行的末尾按一下回车,出现新一行再输入 s4 = "123" #学习脚本 ,注意除了引号内和#右边的,一定要半角纯英小写,不能全角文字,也不能中文,要英文,也不能英文大写。奇怪输入了没用啊?我们看到下面有一行:
@command_window = Window_Command.new(192, [s1, s2, s3])
我们在中括号里再输入,s4。啊!测试游戏,标题画面下面又出现了一个123选项,好吧虽然点了没用(喂喂喂,鼠标点当然没用诶),那就用键盘点吧!没用,那就要给他添加功能啦!下次讲!
作业:加到第五个。 第三课:如何添加功能
再移到下面一些,会发现- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- def update
- # 刷新命令窗口
- @command_window.update
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 命令窗口的光标位置的分支
- case @command_window.index
- when 0 # 新游戏
- command_new_game
- when 1 # 继续
- command_continue
- when 2 # 退出
- command_shutdown
- end
- end
- end
复制代码 我们把它改成- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- def update
- # 刷新命令窗口
- @command_window.update
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 命令窗口的光标位置的分支
- case @command_window.index
- when 0 # 新游戏
- command_new_game
- when 1 # 继续
- command_continue
- when 2 # 退出
- command_shutdown
- when 3 # 123
- command_123
- end
- end
- end
复制代码 然后在- #--------------------------------------------------------------------------
- # ● 命令 : 退出
- #--------------------------------------------------------------------------
- def command_shutdown
- # 演奏确定 SE
- $game_system.se_play($data_system.decision_se)
- # BGM、BGS、ME 的淡入淡出
- Audio.bgm_fade(800)
- Audio.bgs_fade(800)
- Audio.me_fade(800)
- # 退出
- $scene = nil
- end
复制代码 的下面再加一个- #--------------------------------------------------------------------------
- # ● 命令 : 123
- #--------------------------------------------------------------------------
- def command_123
- #这里输入内容
- end
复制代码 在这中间面输入内容就行了,大家一定要多多使用复制!
作业:试着把s5也......你懂的。 第四课:使用功能
我们就在- #--------------------------------------------------------------------------
- # ● 命令 : 123
- #--------------------------------------------------------------------------
- def command_123
复制代码 的下面加上
p "123"
再打开游戏,选择123,就会弹出窗口,显示"123"。
我们新建一个脚本页,输入p "123",打开游戏时也会弹出窗口"123"。
作业:新建一个事件页,输入p "我是s乘b。"然后用大脑把s*b变成缩写试试。 第五课:计算
p 123没有双引号,却可以显示,但英文不是如此,除了数字,其他的符号文字,都要加双引号。
1+1会变成2这也很奇怪,1-1会变成0,可以使用小括号,但是不使用中括号大括号。
1*2等于2,/号也一样,求余数用%,求乘法N次方用**(也就是两个乘号),整数除以整数,会舍去余数,想要得到小数,就要就要把其中一个整数变成小数,如2,就变成2.0,这样才能得到小数。
作业:以上各方法各试两次。 第六课:消除引号
要弹出窗口显示中文,就得加引号,但是加引号之后弹出窗口时也会出现引号,怎么办呢?
把p换成print就可以了。
作业:把print默十次。 第七课:执行公共事件的脚本
$game_temp.common_event_id = 编号
执行编号的公共事件。注意,这个执行和直接在事件中的公共事件有微妙区别。
如你要执行1号公共事件(公共事件名称的左边有编号,自己去打开来看,当然,包括物品之类的也有),就输入 $game_temp.common_event_id = 1 当然,你也可以直接复制此脚本去用,万事大吉了!什么都能通过公共事件执行!
作业:把 $game_temp.common_event_id = 编号 默四次(你爱学不学,这已经很简单了) 第八课:加入、删除角色
加入角色:$game_party.add_actor(编号)
删除角色:$game_party.remove_actor(编号)
初始化角色:$game_party[编号].setup(编号)
作业:当然,和以前一样,默!四次! 第九课:更简单的注释
嗯!是的!我们现在碉堡了!会改脚本了,但是如果要出脚本,有很多注释要说,总不能麻烦地把每一句话都加上#吧?很麻烦,怎么办呢?
我们可以介样:- =begin
- 111111111111111111111111
- 111111111111111111111111
- 222222222222222222222222
- 222222222222222222222222
- =end
复制代码 就全都变成注释啦!
作业:孩纸们!继续吧!两个词各默四次。 第十课:随机数
我们搞个社区类的游戏,可能用到随机获得东东的脚本,rand就是随机,rand(10)就是随机机获得编号0~9的物品,rand(4)+6就是随机获得编号6~9的东东。
以下挺有用的,都可以用于随机数。
增减金钱:
$game_party.gain_gold(金钱量)
增减物品:
$game_party.gain_item(物品编号,数量)
举例:
$game_party.gain_item(rand(10),rand(10)):随机获得0-9号中某一物品,数量为0-9随机。
增减武器:
$game_party.gain_weapon(物品编号,数量)
增减防具:
$game_party.gain_armor(物品编号,数量)
角色替换:
加入角色:$game_party.add_actor(编号)
删除角色:$game_party.remove_actor(编号)
初始化角色:$game_party[编号].setup(编号)
等待:x=帧数
@wait_count = X 随机等待使用例子:@wait_count = rand X
作业:你敢试试么?但rand一定要默。 第十一课:开与关
有没有看见脚本编辑器有很多true和false?true表示开,false表示关。如以下就用到了:
计时器打开:
$game_system.timer = 需要的秒数;$game_system.timer_working = true
计时器关闭:
$game_system.timer_working = false
更改禁止存档
$game_system.save_disabled = true/false
更改禁止菜单:
$game_system.menu_disabled = true/false
更改禁止遇敌:
$game_system.encounter_disabled = true/false
角色透明:
$game_player.transparent = true/false
作业:还用说吗?虽然我正在说。 第十二课:随机数n-a
rand(100):返回0-99的随机数
rand(100)+10000:返回10000-10099的随机数
作业:都老熟人了,你知道作业是什么的。 第十三课:更改字体
如何更改字体呢?我们进入main,看到上面有"黑体"这两个字,我们把它改成"幼圆",就有很好的视觉效果啦!
怎样才能知道咱电脑里有啥字体呢?创建一个Word文档打开,从这个Word文档的上面上面就能知道啦!
最好是系统自带的字体,如宋体、黑体、楷体、幼圆等,否则玩家进入游戏看不到字,就算你在游戏说明中说要安装某种字体,玩家也会费很大的劲去安装的。
作业:把字体改成系统自带的字体4种。 第十四课:更改数值
我要让你们知道数字的重要性!
进入Window_Message
看到下面有- #--------------------------------------------------------------------------
- # ● 设置窗口位置与不透明度
- #--------------------------------------------------------------------------
- def reset_window
- if $game_temp.in_battle
- self.y = 16
- else
- case $game_system.message_position
- when 0 # 上
- self.y = 16
- when 1 # 中
- self.y = 160
- when 2 # 下
- self.y = 304
- end
- end
- if $game_system.message_frame == 0
- self.opacity = 255
- else
- self.opacity = 0
- end
- self.back_opacity = 160
- end
复制代码 我们把22行的 self.back_opacity = 160,改成 self.back_opacity = 0,对话框透明了!,改成 self.back_opacity = 255,对话框完全不透明了!
然后其他的都有注释,很容易看懂然后改的。
所以,在脚本里面,英文最重要,其次数字,最后才是引号里的中文符号等。
作业:至少在脚本编辑器里更改8次数字,并测试。 第十五课:加法
在脚本中,任何地方都能用到加法。
如- 欧买歌万岁 = 88
- 欧买歌神也 = 44
- p rand(欧买歌万岁+欧买歌神也)#0~131
- p rand(欧买歌万岁-欧买歌神也)#0~43
- p rand(欧买歌万岁*欧买歌神也)#0~3871
- p rand(欧买歌万岁/欧买歌神也)#0~1
复制代码 作业:实在想不出什么作业来呢~那就我教过你们的全部句子复习后默一遍。 第十六课:简易变量脚本
- a = rand 2 # 为变量 a 代入 随机数0~1。
- case a # 分歧开始。
- when 0 # 当 a 为 0 时,
- print "欧买歌万岁"# 显示 欧买歌万岁。
- when 1 # 当 a 为 1 时,
- print "欧买歌神也"# 显示 欧买歌神也。
- when 2 # 当 a 为 2 时,
- print "欧买歌无敌"# 显示 欧买歌无敌。
- end # 分歧结束。
- #随机弹出窗口欧买歌万岁或欧买歌神也
- [code]
- 看懂了吗?我为你们带来了变量脚本,有注释的哦!你一定看的懂!
- 作业:case、when默四次,整个简易变量脚本默四次。[hr]第十七课:各种变量[code]$Omige
复制代码 以$开头的变量叫做“全局变量”,全局变量就是说连标题画面都能使用的变量,甚至可以在各个存档中公共使用!!以@开头的变量叫做“实例变量”,实例变量是用于给特定的对象用的,比如角色的能力值。小写或者_开头的变量叫做“局部变量”大写字母开头的叫做常量,这个以后解释。以上的都叫伪变量,nil表示无,ture表示真,false表示假。
全局变量、实例变量一开始都为nil,你需要把它们初始化才能使用,也就是$Omige = 0之类的,没初始化不能进行加减乘除,当然没初始化也可以随便赋值。
作业:弄一个二周目三周目、x周目系统 第十八课:条件分支
其实不光case、when,用?语句也可以。- a = 1#赋值1
- print ( a == 1 ? "Omige~~" : "omige")
复制代码 如果a==1(条件分支是==,赋值是=),就显示Omige~~,否则显示omige
作业:判断局部变量a是否存在。 第十九课:条件分支2
?条件分支可能会有点难以理解,那么我再列出两个简单的条件分支方式。- a = 1 #赋值a为1
- if a >= 3 #如果a大于或等于3的情况下
- print "~\(≧▽≦)/~" #就显示~\(≧▽≦)/~
- elsif a = 2 #除此之外继续判断,如果a等于2的情况下
- print "你是一个好人" #就显示你是一个好人
- elsif a = 1 #除此之外继续判断,如果a等于1的情况下
- print "呵呵" #就显示呵呵
- else #否则
- print "或许你真的不适合" #显示或许你真的不适合
- end #分支结束
- #显示呵呵
复制代码- a = 2 #赋值a为2
- unless a = 1 #如果a不等于
- print "n(*≧▽≦*)n" #显示n(*≧▽≦*)n
- end #分支结束
- #显示n(*≧▽≦*)n
复制代码 作业:判断$a是否为"呵呵" 第二十课:定义
有时候因为事件中的脚本编辑框太小了写不下脚本肿么办?
我教你一个办法!!!!
在脚本编辑器里,写:- class Dingyi #定义一个类,首字母必须大写
- def dingyi #定义一个函数,首字母建议小写
- #脚本内容
- end #函数定义结束
- end #类定义结束
复制代码 然后在事件中的脚本编辑框里写:- alex=Dingyi.new #类
- alex.dingyi #函数
复制代码 RM里的函数是什么呢,比如之前的exit、rand都是RM之前定义过的“函数”了。
作业:重定义几个函数
|
评分
-
查看全部评分
|