代码取决于Java中的对象

时间:2018-08-20 18:08:30

标签: java oop

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

进一步的解释:我正在尝试为NPC的文字冒险创建一个“对话”,其中NPC会告诉您一些信息,您可以选择说些什么。基本上,有NPC与播放器进行更多的通信,但当然也有NPC的语音部分比其他NPC多或少。所以我真的不能用那么多部分对其进行硬编码,而只是像这样将Strings从一个对象更改为另一个对象:

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或任何循环。

所以我需要一种方法来解决这个问题或解决它(希望不会失去将它们全部放在一个类中的能力),但是也许我只是在这里很愚蠢,看不见树木的木头。 / p>

2 个答案:

答案 0 :(得分:1)

您可以使用最终状态机。 FSM Theory and Implementation in game developmet

答案 1 :(得分:0)

对不起,你为什么不能做

public conversation() {
  int i = 0; 
  ...
  while(hasSpeech()) {
    speech(i);
    getReply(reply);
  }

含义:如果您有重复的任务,那么请考虑使用允许您使用某种循环构造的方法。