2014-12-21 276 views
0

我想使用libGDX在Java中創建對話樹(對話樹)。我是否應該使用很多條件(if,else等)並轉到下一個對話框,或者是否有更好的方法來讀取已經存在對話框的XML文件?另外,我希望能夠消耗盡可能少的內存量的解決方案,因爲我將爲Android編寫它。使用libGDX在Java中創建對話

對話樹的例子:

(Q:問題,A:答案C:選擇,AC:動作)

問:你好反正是有,我可以幫助你嗎? A:你擁有我5美元!

C1:警察

電話:請禮貌地向他們回報你,C2:Τhreaten她,C3:畫出你的槍

A1:沒辦法離開這裏,A2:調用安全,A3

AC1-2:從窗口

AC3.1跳轉:退出的選擇1-2

C3.1建設//結束:畫出你的槍和射擊警察,C3.2被捕,AC3.2:死亡

+1

埃姆是什麼在代碼方面的問題?你到目前爲止寫過任何代碼嗎?到目前爲止你研究了什麼? – dawez

回答

3

如果您的遊戲要進行小對話,我會使用String s,但是如果您將其用於對話框,我會使用SQLite或類似的數據庫將它們存儲在其中。我不知道它是否會做到這一點的最有效的方式,但在閱讀您的問題發生的真實給我什麼:

enter image description here

你可以使用例如第1欄爲問題,第2,3,4,5欄爲可能的答案。您可以獲得有關在libGDX中使用SQLite的信息here

您可以將其轉換爲某個方法actor,他傳遞一個id來訪問問題的SQLite以及該問題的答案,然後分配一些變量並使用開關聲明,如果你不想有太多的if-elseif等

注:我認爲SQLite主要用於當你希望數據被保存和使用在未來;如果數據例如每10分鐘更改一次,我認爲使用JSON會更好,因爲在SQLite中,每10分鐘連接數據庫可能需要一些時間。我認爲情況並非如此;在我看來,JSON和SQLite的目的是完全不同的。我會使用例如:

JSON =我想用它來發送和/或介乎服務器&客戶端或配置文件等

的SQLite接收數據= I將用它來存儲數據。

這只是我的看法,我不是說SQLite比JSON好或者差。

PS 1:照片是從網上

PS 2採取:我也認爲你應該閱讀https://stackoverflow.com/tour

+0

雖然我同意保羅的評論是不恰當的,因爲它不具有建設性 - 對這種評論作出迴應的正確方法是簡單地標記它們(例如,不具有建設性),而不是編輯你的答案以指向某個特定的人。我已經重新回答了你的答案(一路上有一些語法修正),希望你不介意。 – vaxquis

+0

@vaxquis感謝您的糾正,我看着你「不適當」,我很抱歉,如果我打擾你, –