我需要根据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>
答案 0 :(得分:1)
您可以使用最终状态机。 FSM Theory and Implementation in game developmet
答案 1 :(得分:0)
对不起,你为什么不能做
public conversation() {
int i = 0;
...
while(hasSpeech()) {
speech(i);
getReply(reply);
}
含义:如果您有重复的任务,那么请考虑使用允许您使用某种循环构造的方法。