首页 > 范文大全 > 正文

钓鱼系统(上)

开篇:润墨网以专业的文秘视角,为您筛选了一篇钓鱼系统(上)范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

嗨,大家好,我是浩然正气。经过半年的学习,相信淀粉们对于RMVA有了比较全面的了解。接下来,浩然给大家讲一讲事件实现的复杂效果,让大家能够更深一步地了解RMVA的强大功能。

另外,最近有的淀粉找我的时候把我当成小编了,还有问我要小编们QQ号的。这里我声明一下,我只是一名初中生,是一个淀粉,我的名字是孙浩然,所以就叫浩然正气了,就是这样。

说完了废话,我们就开始本期的内容吧。今天给大家带来的是模仿《零之轨迹》的钓鱼系统哦~

1.功能设计

从今天起,我们要用事件做一些比较复杂的东西,为了避免后期效果不好,需要对要做的东西进行一下大体规划。

我们要做的是仿零轨的钓鱼系统,可以将整个过程分成如下的部分:

1.选择鱼竿、鱼饵

2.等待

3.鱼出现

4.钓到鱼

我们只要将这4个部分分别实现并连在一起,整个钓鱼系统就完成了。另外,为了让这个系统可以重复使用,我们需要将其放到公共事件。

首先,我们需要设置好需要的物品,包括各种不同的鱼竿、鱼饵以及鱼。

鱼竿我只做了3个,大家可以自己随便添加,设置成“菜单中使用”,物品类型改成“贵重物品”,然后设置好价钱就可以了。各种鱼饵与鱼的添加和鱼竿类似(请不要吐槽那个叉子鱼竿)(图1)。

顺便说一下,钓鱼钓上来的不一定非得是鱼,也可以是武器装备之类的^_^。

2.选择鱼竿、鱼饵

接下来是整个系统的第一部分也是最简单的一部分。打开数据库,新建一个叫做“1.选择鱼饵”的公共事件,触发条件为“正常执行”(图2)。

然后,我们在这个事件中完成选择鱼竿的功能:添加[事件指令][信息][物品选择处理],选择“变量”,增加一个鱼竿变量与鱼饵变量(图3)。

分别添加好选择鱼竿变量与选择鱼饵变量,这里你还可以添加文字信息(图4)。

似乎这样就完成第一阶段了,但是实际上还有一个问题:测试时会发现,所有类型为贵重物品的都可以选择(图5),所以我们需要一个是不是要选择东西的判定。

空出其他四个阶段的公共事件,新建两个公共事件:判定鱼竿、判定鱼饵。

由于这两个功能接近,这里只写出判定鱼竿的事件。这个事件由于要判定是不是鱼竿,所以它需要一个“输入”和一个“输出”。RM的公共事件不能直接接受输入,所以我们还得用变量(图6)。(看,变量功能强大吧,实际上它是高阶事件的灵魂。)

这个事件很简单,只是一大堆判断而已,如果不是鱼竿则输出-1(图7)。

其中,“输入”就是玩家选择的物品编号,20、21、22是三个鱼竿的物品编号,为了方便,把“输出”变成了1、2、3。

按照同样的方法设置好判定鱼饵。然后,到[1.选择鱼饵/鱼竿],添加一个[循环],将选择鱼竿/鱼饵的指令挪进去,加上判断鱼竿/鱼饵的指令,在输出不等于-1(即是鱼竿/鱼饵)的情况下跳出循环,并把输出赋值给相应的变量(图8)。

这样,如果玩家选择的不是鱼竿/鱼饵,就会一直重复,让玩家选择。

这段指令也许真的不是很好懂,但大家都是聪明的淀粉不是吗?仔细思考,你一定能看明白的!

3.等待鱼的出现

解决了第一部分,我们进入“等待”环节。

仍然新建一个公共事件,取名“2.等待鱼的出现”。我们要做的就是在角色的头上生成一个省略号,等待,当鱼出现时变成叹号,然后结束等待。

整个流程看起来就是这样的:

呃,这是什么玩意儿?什么是循环什么是跳出啊?

简单地说,“循环”包含了一系列的指令,除非遇到“跳出”或者事件中断,否则里面的一系列指令会不停地执行下去。

“跳出”的作用就是立即停止执行循环,并进行后面的步骤。

循环后面的两个花括号“{”“}”标记着循环的开始与结束,这个用法来自大名鼎鼎的C语言。

可以看到,最重要的就是判断鱼是否出现。

我们为了方便,一般采用随机数处理即可,但是使用随机数判定偶然性实在太大,难以控制。这里我们使用两个变量同时控制,它们分别是随机变量和时间变量,前者用来起主要判断作用,后者用来防止随机数的极端情况(一直不出现鱼)。

随机变量初始大于0,时间变量为0,当前者等于0或者后者大于一定的数值时鱼就会出现。每次判断时,随机变量都加上一个随机数,同时减去另一个随机数,且减去的随机数整体大于加上的随机数。

可能这么说不太好理解,还是直接看制作吧!

先添加两个变量:钓鱼计数(即随机变量)和钓鱼时间(即时间变量)(图9)。

在事件开始的地方初始化“钓鱼时间”为0,“钓鱼计数”为15(可以按照自己的要求修改,这个数字越大,钓到鱼等待的时间就越长)。

然后添加一个循环,在顶部加上上述的两个随机数加减操作,选择[条件控制][变量操作],操作为加法,数值为随机,这里我的范围是0~2(图10)。

同样的方法添加好减去随机数,范围我取了1~2,这样有利于减到0(图11)。

然后就是一些判断,当“钓鱼计数

用同样的方法来处理钓鱼时间,只是将条件改为:当“钓鱼时间>100”时,跳出循环。

最后,加入等待19帧,显示心情“沉默”,并将钓鱼时间+1(图13)。

聪明的淀粉可以看出,我们在这里设置了两个平行的条件:钓鱼计数和钓鱼时间,只要其中的一个条件满足要求,就会跳出循环(钓到鱼);如果一个循环中两个条件都不满足,那么就会增加1个单位的时间,也就是说,只要等待的时间足够久,肯定会钓到鱼。

这样,我们就初步完成了等待鱼出现的公共事件(图14、图15)。

怎么样,效果还不错吧?下一期我们将继续将剩下的两个部分做完,并优化细节!

另外本期光盘中附带了已完成部分的游戏工程,大家可以自己查看。

淀粉们如果有问题,可以到我的博客http://留言,或者发邮件到!下期再见!