我想使用libGDX在Java中创建一个对话树(对话树)。我应该使用大量的条件(如果,等等......)并转到下一个对话框,还是有更好的方法来读取已经有内部对话的XML等文件?此外,我希望解决方案能够消耗尽可能少的内存量,因为我将为Android编写它。
对话树的示例:
(问:A:答案,C:选择,AC:行动)
问:无论如何,我可以帮助你吗? 答:你给我5美元!C1:礼貌地回答他们,C2:h her她,C3:拔枪
A1:没办法离开这里,A2:打电话给保安,A3:打电话给警察
AC1-2:退出建筑物//选择结束1-2
C3.1:拔出枪并射击警察,C3.2:从窗户跳下
AC3.1:被捕,AC3.2:死亡
答案 0 :(得分:3)
如果你的游戏几乎没有对话,我会使用String
来获取它,但如果你以对话为基础,我会使用SQLite或类似的数据库将它们存储在其中。我不知道这是否是最有效的方式,但是在阅读你的问题时我发生了什么:
您可以使用例如问题的第1列,以及可能答案的第2,3,4,5列。您可以在libGDX here
中获取有关使用SQLite的信息你可以进入一些方法角色,他传递一个id来访问问题的SQLite和问题的答案,然后分配一些变量,并使用switch语句,如果你不想有很多if-elseif等。
注意:我认为SQLite主要用于希望将来保存和使用数据的时候;如果数据例如每10分钟更改一次,我认为使用JSON会更好,因为在SQLite中每10分钟连接一次数据库可能需要一些时间。我认为情况并非如此;在我看来,JSON和SQLite的目的完全不同。我会用例如:
JSON =我会用它来发送或/和接收服务器和服务器之间的数据。客户端或配置文件等。
SQLite =我会用它来存储数据。
这只是我的观点,我不是说SQLite比JSON更好或更差。
PS 1:照片来自互联网
PS 2:我也相信你应该阅读https://stackoverflow.com/tour