
我想我一直是个书呆子。 那是我的十二岁生日,我的家人刚搬到一所几乎但并非完全不在的地方。 至少五年或六年之后,有线电视才不再是那所房子的选择。 那是黑暗时代。
那天生日那天,事情发生了变化,当时我父亲下班回家。 他走进我的房间,告诉我生日快乐,然后从当地漫画书店扔了一个书包。 包里是一个全新的世界,收缩包裹在一个红色的盒子里,上面装饰着一个与巨大的红龙作战的战士。 原始的龙与地下城基本套装。
- 在Chrome OS上使用Google Cloud Platform进行云游戏
- 追星族寻梦者:艺术家的自白
- 为什么七龙珠Z武道会Tenkaichi 2(Wii / PS2)对我很重要
- 聊天冠军:维克多
- 相对于简单性。 电子游戏的复杂性。
我仍然记得那天晚上坐在我的房间里玩和重播第一次个人冒险。
那一刻开始改变了我对幻想,绘画和游戏的热爱,改变了我的生活。 我的一些最好的朋友被围坐在桌面上,小时候就开始冒险。
简短的历史课程已无法解决,我一直在寻找一个新的Vue.js学习项目。 回想起最初让我进入游戏领域的原因,那是我12岁时第一次参加个人冒险,我认为那可能是一个理想的起点。
有了第五版SRD规则,我开始工作。
玩家角色将是具有重甲和战斧的人类战士。 您可以设置角色的名称和主要统计信息。 现在,您真的没有选择任何装备或武器,只是得到了所得到的。 设置了统计数据后,您需要保存您的角色,这将对种族统计数据应用种族加成,并在适用时应用您的体质加成,并将角色“保存”在浏览器的本地存储中。 它将保留在那里直到您将其清除。
保存后,就该杀死一些东西了。
我最初是从几个怪物开始的,但是我发现了一个JSON文件,其中包含第5版SRD中的怪物列表。 我不想修改其文件,因此我要做的第一件事是过滤数组以确保仅返回带有名称键的对象。
eventLoop方法是战斗模拟器的核心。 在战斗开始时会检查主动性,并确定整个遭遇战的战斗顺序。 如果玩家赢得主动权,他将首先攻击,然后任何小怪都会攻击。 如果暴民主动,他们将首先进攻,然后玩家将进攻。 重复此过程,直到有人死亡。
pcAttack和npcAttack方法被分解成自己的方法,以保持可读性。 这些方法处理攻击和伤害掷骰并对目标造成伤害。
每次战斗结束后,我都会看到角色或怪物死亡。 如果怪物死亡,则给予正确的经验。 重新开始战斗将再次开始该过程。
我很幸运地找到了第5版SRD Monster作为JSON负载列表,将我最初的3个生物猛增到300多个!
我向应用程序中添加了mob查看器,以帮助调试战斗逻辑中的问题,但它也像是沿着内存条走。 我对页面的工作方式有一些想法,我还想拥有一个按钮可以与特定的怪物进行战斗很酷。
我想我有一个良好的开端。 大部分时间都花在集成和处理怪物数据的细微差别上。 接下来,战斗将运行得相当好,我将研究如何使游戏变得更平整并进一步完善角色屏幕。
随时检查一下:
https://github.com/robertz/vue-rpg
https://vue-rpg.now.sh
最初于 2018 年8月24日 在 kisdigital.com 上 发布 。