使用Node.js实现一个多人游戏服务器引擎(10)

最后,其中一些道具可能会触发其他操作或者状态更新,具体取决于玩家决定用它们做什么。其中一个例子就是从入口处点燃的火把。如果你拿着一个,将在游戏中触发状态更新,这反过来将使游戏向你显示下一个房间的不同描述。

道具也可以有“子道具”,一旦原始道具被销毁(例如通过“分解”操作)就会发挥作用。一个道具可以被分解为多个,并在“subitems”元素中定义。

本质上,此元素只是一个新道具的数组,其中还包含可以触发其创建的一组操作。基本上可以根据你对原始道具执行的操作创建不同的子道具。

最后,有些物品会有“伤害”属性。所以如果你用某个道具击中 NPC,该值用于从中减去生命。

exits

出口是与道具分开的实体,因为引擎需要知道你是否能够根据其状态去遍历它们。否则被锁定的出口无法让你通过,除非你把它的状态改为已解锁。

NPC

最后,NPC 将成为另一个列表的一部分。它们是有状态信息的项目,引擎将使用这些状态信息来了解每个项目的行为方式。在我们的例子中定义的是 “hp”,它代表健康状态,还有“damage”,就像武器一样,每次命中将从玩家的健康状况中减去相应的值。

这就是我创造的地牢。内容很多,将来我可能会考虑写一个编辑器,来简化 JSON 文件的创建。但就目前而言还没有必要。

你可能还没有意识到,这样在文件中定义游戏是有很大好处的,能够像超级任天堂时代那样切换 JSON 文件。只需加载一个新文件就能开始另一个游戏。非常简单!

总结

感谢你能读到这里。希望你能喜欢我所经历的设计过程,并将想法变为现实。我正在努力实现这一目标。我们以后可能会意识到,今天定义的内容可能会不起作用,出现这种情况时,我们将不得不回溯并修复它。

我敢肯定,有很多方法可以对这里提出的想法进行改善,并创建一个地狱的引擎。但是这需要在本文中添加的更多的内容,为了不让读者感到无聊,所以就先这样吧。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对黑区网络的支持。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/78.html