首页 > 解决方案 > 代码依赖于java中的对象

问题描述

我需要根据我的 java 类的对象执行不同的代码。

进一步解释:我正在尝试为一个文本冒险创建一个“对话”,其中有一个 NPC,NPC 会告诉你一些事情,而你有几个选择要说什么。基本上,有些 NPC 与玩家交流的内容更多,但当然也有 NPC 的语音部分比其他人多或少。所以我不能用这么多部分对它进行硬编码,而只是将字符串从一个对象更改为另一个对象,如下所示:

public class NPC {
  private String[] speech;
  private String[] reply;

  public conversation() {
   speech[0];
   getReply(reply);
   speech[1];
   getReply(reply);
   speech[2];
   getReply(reply);
   ...
  }
}

例如,NPCone 有 3 个语音部分,NPCtwo 有 7 个,这些部分中的每个部分都会以某种方式对不同的回复做出反应,所以我也不能真正使用 if 或任何循环。

所以我需要一种方法来做到这一点或解决它(希望不会失去将它全部放在一个类中的能力),但也许我在这里只是愚蠢并且看不到树木的树木。

标签: javaoop

解决方案


您可能会使用最终状态机。游戏开发中的 FSM 理论与实现


推荐阅读