我的 RPG Maker XP 作品集(三):MY ARPG 开发记
这篇展示 MY ARPG——2021 年做的即时战斗 ARPG,也是我那个 RMXP 时代武器系统做得最讲究的一个。它的更新日志开头是这样的:
嗨!这个ARPG游戏是本人第一次制作。有什么不好请提意见!
说是第一次,得限定一下范围:第一次做 ARPG。因为它的工程文件是直接从赌青蛙 V1.0.0 复制出来的——物品库原封不动搬了过来,赌场券、化学实验室、NaOH 星级武器全套都在。上一个项目就是下一个项目的底座,我一直觉得这没什么好隐瞒的,反而挺骄傲:青蛙至少贡献了它的尸体。
武器系统
「游戏怎么玩?请点击在这里.txt」是这个作品里我最得意的一份文案,武器部分原文照录:
A.当[铁匕首/钢短剑]装备时,按下shift键即可攻击。
C.当[普通の弓]装备时,按下【C】键即可先填充箭袋中的箭,再次按下【C】时即可射击(可能延迟),在游戏界面的最左边有一排箭数,方便玩家查看箭的数量。技能:1当按下【Z】键时开启[连发]技能,可以持续按shift键发射。2当按下【D】键时,如果你的箭数大于5,即可发动[集中射击]技能。
D.当[火之杖]装备时,当按下【C】键即可发射火球,威力为角色攻击力,更加入了攻速的概念,更劲爆的是:当按下【D】键时,发射5发火球出去。小伙伴还在等什么?赶紧来玩吧!
划一下重点。武器分三类,各有一套按键方案:剑类按 shift 普攻;弓有「弹药系统」——C 键装填、再按射击、界面最左边一排箭数显示余量,还诚实标注了”(可能延迟)”;弓还有两个主动技能,Z 开连发、D 消耗五支箭发动集中射击。火之杖走法系路线,有攻速概念,按 D 一次泼五发火球。
场外话至于最后那句"小伙伴还在等什么?赶紧来玩吧!"——当年写这句的时候是真觉得会有很多小伙伴。
V0.0.5 与 V0.1
更新日志一共两版:
版本V0.0.5
★(1)加入一系列武器,详细见游戏怎么玩?请点击在这里.txt
★(2)加入敌人以及主角的血条
★(3)按键技能攻击优化V0.1版本V0.1
★(1)按键优化(再也不用手动修改了!)
★(2)修复一些bug
“再也不用手动修改了!”——这句的背景是 V0.0.5 时代改按键设置要动脚本参数,V0.1 终于把它做成了游戏内可调的。对当时的我来说,这大概相当于一次大型的人机交互升级。
实机录像
这回我自己又完整开了一局。标题画面先站好——「开启新之旅」「返回 旅行」「溜 了」「更多关于这」,菜单文案当年就写得这么放飞,鼠标进来操作也变成了钻石镐的形状了,所以接下来的图片重都有钻石镐的踪影:

「C:攻击/射击/填充」「S:技能连射」「D:集中射击」,和「游戏怎么玩」那份文档一字不差。
一开始是个教学关卡。开局再背包里面切换成小刀。按空格来攻击,右边看到又一个蜘蛛怪,把他击败之后,走近尸体,直接获得钱:

再往后,遇到了两只怪物,骨头会瞬移到玩家背后偷袭,眼睛怪则一直念技能、在地上铺出红色攻击长条攻击范围——红色就是要躲的意思,这一路都得盯紧了:

因为这是教学关,如果玩家血量被打太低的时候,「???」蒙面人会现身帮忙回血——它就是这一关的保险丝。
这一次的主武器选的是弓。连发模式开起来,锁定角色面向开起来,长按空格就能连续射击弓箭——20 支箭一口气全射空,随即弹出横幅:「失去物品:箭袋(满20支)×1」,这是重新装上箭袋的意思,左上角其实有剩余弓箭数量显示:


最后也是把怪物血条磨没了并且捡起了金币:

通过了上面的关卡之后就是一个长毛怪 boss。地上出现的红色地块依旧是怪物攻击预告:
对着血条更长的敌人,这时候再背包更换火法杖,火球术上场:单发火球一发一发点,按下 D 则是一次放出五个火球横着扫过去。

没血了还是「???」蒙面人给角色回复血量,所以完全不怕,但是这个boss明显要更有压迫感,技能好像不要钱的来放,而且还会面向玩家进行冲刺有接触伤害。

教学关之后,正式关卡来了。第一个问题是矿车。先开背包,把武器换成匕首:

然后逼近矿车一顿输出——矿车会顺着攻击的方向往前滑,撞到墙壁或者撞到人才停,打着打着就散了架:

往前走,横幅弹出来:「获得物品:铁 ×1」——矿车掉落的铁锭到手:

再往下走,撞见两个蓝色的贝壳——也是怪。这时候换回远程的火之杖,普通攻击能打掉血;可它们居然会收缩贝壳切换形态,免疫所有攻击,飘出来的伤害全是 0:

火杖打不动缩壳的贝壳,只好切回匕首上去硬拼——然后就被杀死了,Game Over:

Game Over 重开再进,刚才那两只蓝色贝壳这回直接逃跑了,不打了:
过了桥,看到上方有一只怪物——会隐身。用火球打掉它不少血,但打着打着它好像锁血了,怎么打都无敌;于是切换匕首,直接冲上去肉搏,这次成功把它杀掉了:

下一个是还有一只被水晶封印的人。先用匕首砍了几刀,太慢了;换上火杖,一炮把封印他的水晶打碎。他和我说了声谢谢,靠近交互发现是个商人,可以买卖东西——顺手把之前杀蜘蛛掉落的蜘蛛丝给卖掉了:


再往下是传送机关。看到左边有个宝箱,过去打开获得了东西,我没走,留下来继续和宝箱交互,交互了三次,弹出来一个隐藏对话框——按照提示选作者的 QQ 号。第一次选错了,重新触发选对了,奖励 999999 金币直接到账:

接下来想突破这个传送机关:它会一直发射传送弓箭,玩家碰到就会被传送回机关入口,出口在机关右边。趁着弓箭发射的间隙一鼓作气跑过去,有惊无险:

这边是一条长走廊和通道,看到一大片水域,里面有三只颜色不一样的鲸鱼。一下水它们就开始放水柱攻击,最后成功全部击杀,金钱到手:

打开编辑器,看看这套战斗是怎么写的
光打还不够,这次把 RMXP 的编辑器也打开了,截了八张关键部位。编辑器里可没有什么图例,所以每张图我直接点名,说清它在哪、要看的是什么。
先看「新手试炼-2」的事件层。每只怪物都摆在对应的位置上,而实战里地上那些要躲的红色地块,其实也是一个个事件,就铺在地图上等着你踩:

打开长毛怪物的事件(ID069,名字叫「降物六」)。它的攻击靠随机数发动:变量从 1 到 3 里抽,抽中 1 就执行一整套攻击——面向主角、扣血、飘伤害数字、播攻击动画。怪物什么时候出手,是骰子说了算:

翻到它的死亡页(「怪物六死亡」开关打开时):先加 1000 金钱,然后一串对话宣布「新手试炼真正结束了」,还说要「没收你的全部武器」——铁剑、钢短剑、钢之剑、普通の弓、火之杖一样一样收走,再用场所移动把玩家扔进下一张地图。顺便一提,那张地图的名字叫「第一关:无名地图(作者想偷懒)」,偷懒这件事,当年是直接写在地图名里的:

真正的看家本领是冲刺。ID087「怪物六技能2—冲刺」,启动同样交给随机数;触发了就当场算账——把主角和怪物各自的 X、Y 坐标取出来相减,得出 ΔX 和 ΔY,比一比哪个差值小,就朝哪个方向冲:

方向定了,先把 #1 到 #4 四块「冲刺红色判定」事件用变量摆到怪物体前——实战里提前出现的红色预警就是它们——逐个打开对应开关,等上二十四帧,最后给怪物下移动路线:转向、提速、开着穿透连走四步,一头冲过红块,再一切复原。预警、冲刺,一页事件全干完:

冲刺撞到人怎么算?ID089 挂在「怪物六冲刺技」开关下并行跑,循环比对主角和怪物的坐标——只要重合,脚本飘 3 点伤害、扣血,结算完把冲刺伤害判定开关关掉,等下一轮。从技能释放、红色预警到碰撞结算,一套逻辑闭环:

玩家这边的攻击也有对应的事件页:ID070「近战武器攻击及扣血」,盯着「匕首允许攻击」的场合——按下 R 挥刀,先看角色朝向,再把怪物坐标减去角色坐标,差值对上了才算进攻击范围,扣血、飘字一样不少:

火球是另一套做法。地图上摆了 6 个火球事件,按下火球键,事件直接被搬到玩家朝向前一格,然后自己往前跑;跑动途中拿火球的 XY 和每只怪的 XY 逐个比对,坐标重合就算命中,最后按攻速补上等待帧,防止射得太快:

场外话跳出年代说两句:不管是弓箭、火球还是匕首,判定都是对每一只怪物单独做一遍,很麻烦。多做一个地图,就得把这些事件全部拷贝过去,再把整张地图所有怪物和这些武器的交互重新遍历一遍,全都得重修。而且 RMXP 的事件系统不写代码的话,做不出「怪物类」这种东西,这个难受,当年做的时候是亲眼见识过的。所以一个暑假做下来,埋头做的时间有两三周,做出来的也就这么几只怪——单独设计它们的简单行为,花的功夫还没有设计事件关系、开关变量、攻击判定这些重复劳动来得多。
