到目前为止,我已经编写了一个简单的基于瓷砖的RPG引擎,您可以通过在它们旁边按'x‘来与对象(例如和NPC)进行交互。此时,我可以在屏幕底部显示一个框,并带有一些文本(随意定义)。我需要能够组织这样的对话结构:

在这一点上,会话的定义(无论是从XML文件加载,还是使用工厂方法)并没有什么问题;今后我应该不会有任何困难。我所需要的只是一些关于我应该如何安排我的班级结构的指导。
到目前为止,我想不出任何想法;我的大脑因无法找到解决方案而瘫痪。我可能需要某种类型的对话类,其中包含NPC必须说的文本数组。但是我怎么知道谁在说话,或者根据情节事件他们要说什么。这类问题似乎有点令我难以理解。
我也见过this。我想我需要知道的是如何实际使用这些数据。
我们将非常感谢您的帮助。
发布于 2014-06-30 07:28:44
首先,这个问题太宽泛了。它是这样的,因为有很多方法来解决它,第二,因为一切都取决于你当前的代码结构以及你的技能。
但是,这里有一个小主意--您应该使用所谓的状态(和/或状态机)。因为您有不同的交互(比如先说,然后输入,然后与其他人交谈),所以您需要一个类来保存玩家当前的进度。在那里,您可以列出必须执行的操作。更改状态意味着对当前操作有不同的索引(这实际上是一种进步)。
动作类本身可以有一个类型(如果它是一个谈话或另一个玩家动作),以及目标(可以交谈的人;访问的地点)。
当然,这是我认为你们应该建立在这个基础上的最基本的基础。正如我说过的,实现这一目标有很多种方法,但是您肯定需要提供一个包含不同类型的操作的列表,并保持它们的进步。拥有这样的类也将帮助您序列化(保存)该进度。祝好运!
https://stackoverflow.com/questions/24484652
复制相似问题