大家好..唔,第一次发教程啥的,真不知道开场应该说些啥..(众:那乃就直接入正题啊喂,再废话PIA飞..)
嗯,最近在补习PSP上的某RPG神眷之力,觉得里面的一些小系统还不错,所以想实现其中的一部分~今天尝试着用事件做了下里面的隐藏宝物共鸣,MS好像成功了?(众:真神奇..)于是拿出来和大家分享一下,顺便探讨一下有没有什么更好的实现方法~
嗯,首先这个隐藏宝物共鸣系统到底是什么东西私大概也不用多解释什么了吧,简单的说就是使用技能让原本看不见的隐藏宝物现形~《神眷之力》里的现形方式是按下某个键之后主角发动共鸣技能,然后一定范围内的隐藏宝物就会显现出来,这里咱们稍微修改下:
共鸣流程:
使用技能“宝物共鸣”->共鸣模式开启->在共鸣模式下按下键盘上的D键,隐藏宝物搜索开始(为了简洁起见下面的“隐藏宝物搜索”简称为Ranging)->如果隐藏宝物在共鸣半径之内则显现出来->开宝箱拿宝物
大致流程就是这样了,使用技能之后开启共鸣模式只需要简单的开关操作就可以了:技能调用公共事件“共鸣开启”->公共事件“共鸣开启”打开开关“共鸣模式开启”;
在共鸣模式下按键开始Ranging也只需要简单的几行事件就好:设置公共事件“按键共鸣”,目标“并行处理”,条件开关“共鸣模式开启”,执行内容:
条件分歧:
按钮Z被按下时
公共事件:Ranging
分歧结束;
接下来就是主的公共事件Ranging部分了。如果地图上只有一个隐藏宝物的话思路也比较简单,只要算出主角和宝物的距离,然后判断一下是不是小于共鸣半径,如果小于共鸣半径的话就把宝箱显现出来就好了~不过如果一张地图上有好多个隐藏宝物的话就有下面几个问题了:
·判断的时候到底应该判断哪个隐藏宝物?
这个问题通过一个循环就可以解决了,因为涉及到事件编号的问题所以MS得写一点脚本到事件里了..现在比较麻烦的问题是:
·地图上除了隐藏宝物以外还有很多透明事件,比如控制剧情的事件控制BGM的事件等等,究竟哪个事件才是隐藏宝物呢?
这里私稍微取了点巧——角色图形为“无”的事件也是可以给图形设置透明度的~那么咱们把隐藏宝物统一设成一个数字比较偏门(避免撞车)的透明度(反正不管怎么设置都看不见~),然后在主事件里加入透明度的判断就可以把隐藏宝物过滤出来啦~
嗯,主要的麻烦问题解决了,现在可以开始写主公共事件了,这里私把隐藏宝物的不透明度统一设置成了254,共鸣半径设置成了5,具体事件设置如下图:
呜咕..条件分歧的地方好像写的长了点没截下来..总之每个条件分歧都是个过滤器,把不需要的事件T出考虑范围:
首先最上面的$game_map.events[$ranging] != nil
是将不存在的事件过滤出去;
然后接下来的分歧语句是$game_map.events[$ranging].opacity == 254
就是上面说的,将不透明度不是254的事件过滤出去;
接下来最后的分歧语句
($rx - $game_variables[4])*($rx - $game_variables[4])+($ry - $game_variables[5])*($ry - $game_variables[5]) < 25
就是计算角色和隐藏宝物的距离咯~
嗯,主公共事件设置好之后就基本上大功告成啦,接下来只要在地图的旮旯角里放上隐藏宝物的事件就好了~根据主公共事件里的设置,在共鸣生效,也就是隐藏宝物被发现的时候,这个隐藏宝物事件的独立开关A会被打开,独立开关A被打开之后在新的事件页里要做些什么大家就自由发挥吧~私的做法是首先播放一个音效让宝箱显现出来,然后就是传统宝箱事件的设置啦~
恩姆,差不多就是这些了,啰啰嗦嗦说了一大堆(众:乃也知道啰嗦啊,PIA飞),老实说总觉得解决思路好像不太简洁呀..最后附上饭粒工程供参考~先使用“宝物共鸣”技能,然后再在地图上按D键试试看吧~
本帖来自P1论坛作者村纱水蜜,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:
https://rpg.blue/forum.php?mod=viewthread&tid=156272 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。