gpt4 book ai didi

ios - 如何在游戏中设置对话逻辑?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:33:52 24 4
gpt4 key购买 nike

我正在制作一款游戏,其中一部分玩家必须参与对话。游戏向玩家提出一个问题,并给出3 个选项 来回答。当玩家回答时,根据玩家之前的答案弹出一个新问题。这意味着,现在有 3 个可能的潜在问题。这些问题中的每一个都会带来 3 个新答案,因此现在有 9 个潜在的答案。每个答案都会再次引出一个问题,所以现在有 9 个问题27 个潜在的答案,依此类推...

我不要求解决方案,但非常感谢有关如何设置它的想法。我只是不知道如何正确组织它。开发者通常如何在他们的游戏中这样做?

谢谢!

编辑:

感谢 Duncan C 提出的想法。我为解决这个问题所做的只是一个带有字典的 plist,里面包含很多小字典。每本小词典 - 一个带有可能答案和唯一 ID 的问题。我做了一个我的模型的例子:

<key>q1</key>
<dict>

<key>question</key>
<string>Do you want to go left, right or straight?</string>

<key>a1</key>
<string>Left.</string>

<key>a2</key>
<string>Right.</string>

<key>a3</key>
<string>Straight.</string>

<key>a1key</key>
<string>q2.0</string>

<key>a2key</key>
<string>q2.1</string>

<key>a3key</key>
<string>q2.2</string>

</dict>


<key>q2.0</key>
<dict>

<key>question</key>
<string>You went left and found the key.</string>

<key>a1</key>
<string>Take the key.</string>

<key>a2</key>
<string>Go forward.</string>

<key>a3</key>
<string>Go back.</string>

<key>a1key</key>
<string>q2.01</string>

<key>a2key</key>
<string>q2.02</string>

<key>a3key</key>
<string>q2.03</string>

</dict>




<key>q2.1</key>
<dict>

<key>question</key>
<string>You went right and met a monster.</string>

<key>a1</key>
<string>Fight it.</string>

<key>a2</key>
<string>Run away.</string>

<key>a3</key>
<string>Hide from it.</string>

<key>a1key</key>
<string>q2.11</string>

<key>a2key</key>
<string>q2.12</string>

<key>a3key</key>
<string>q2.13</string>

</dict>


<key>q2.2</key>
<dict>

<key>question</key>
<string>You went straight and found a castle!</string>

<key>a1</key>
<string>Enter it.</string>

<key>a2</key>
<string>Continue going straight without visiting the castle.</string>

<key>a3</key>
<string>Go back.</string>

<key>a1key</key>
<string>q2.21</string>

<key>a2key</key>
<string>q2.22</string>

<key>a3key</key>
<string>q2.23</string>

</dict>

等等等等。因此,每次玩家选择其中一个选项时,都会出现下一个链接字典。我认为它工作得非常好,并且可以使用相同的问题来相互链接,因此没有必要重写相同的东西。

最佳答案

我建议使用 plist 而不是 XML。 Plist 更易于创建和阅读。

无论是哪种情况,将您的问题和答案放入外部文件都可以使您的程序更加灵活,而且无需付出太多努力。然后,如果您稍后决定要有 50 个问题,只需将记录添加到您的文件中即可。

我建议使用一系列字典。你可以这样创建它:

#define K_QUESTION_KEY @"question"
#define K_ANSWERS_KEY @"answers"
#define K_CORRECT_ANSWER_INDEX @"answerIndex"


NSArray *questions = @[
@{K_QUESTION_KEY: @"What is your quest",
K_ANSWERS_KEY: @[@"I seek truth and enlightenment",
@"I seek to escape from reality",
@"I seek the Holy Grail"];
K_CORRECT_ANSWER_INDEX: @(2)
},
@{K_QUESTION_KEY: @"What is your favorite color",
K_ANSWERS_KEY: @[@"Blue",
@"Red",
@"Blue - no, green!"];
K_CORRECT_ANSWER_INDEX: @(1)
},
@{K_QUESTION_KEY: @"What is the airspeed velocity of an unladen swallow",
K_ANSWERS_KEY: @[@"42",
@"I don't know",
@"A European or African swallow?"];
K_CORRECT_ANSWER_INDEX: @(2)
}

];

然后使用

将其写入磁盘
[questions writeToFile: file_path atomically: YES];

然后您将使用类似的语法来读取文件并遍历它。

关于ios - 如何在游戏中设置对话逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21662214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com