2013-04-30 46 views
1

我正在製作遊戲。它進行得很好,現在我正在打球。顯然,該程序必須存儲對象的座標可以在該字段中看到。這意味着很多對象。以方便的方式分配很多變量

目前,我在main(){}函數中執行這些賦值。問題是,如果我想要製作很多關卡,那麼很多作業都是必要的。在這種情況下,main(){}將會不必要的長。我想避免這種情況。

我唯一的想法就是這樣創建對象的數組:

ClassName ObjectArrayName[NumberOfObjects]

...這使得它們更容易處理。但它仍然無助於存儲座標。

任何想法?

+1

你是否用手指定每個位置?爲什麼不爲每個級別創建一個配置文件,以及一個LevelManager類來加載它們? – DGomez 2013-04-30 20:33:53

+2

您可以使用*函數*來構造您的代碼。 「 – 2013-04-30 20:35:17

+2

」......我很困惑,我想避免這種情況。「 : 太晚了。也許編程方法的一些結構將會是有益的。目的驅動的功能,數據類型,et'al。 – WhozCraig 2013-04-30 20:37:15

回答

2

您應該從文件中加載您的關卡數據。建議您使用某種標記語言,而不是僅僅閱讀純文本文件。例如,您可以將您的關卡數據保存爲XML或YAML文件。有很多庫用於閱讀這些格式。

+0

如果XML文件包含C++語言的代碼,這就夠了嗎?圖書館可以閱讀它們嗎? – 2013-04-30 20:54:11

+0

恩,沒有。您不應該將代碼寫入標記語言文件。它應該包含如下內容:老闆 5,10 Scintillo 2013-04-30 20:59:51

+0

這就是全部?這聽起來不難! =) 我會試着用它做點什麼。我不確定它會工作,取決於我。但是,直到...感謝您的答案。 – 2013-04-30 21:00:57

1

關於main()中應該包含的唯一行是Game myGame; myGame.Start(); :)如上所述,加載XML文件以初始化對象是一種解決方案。但不是手動完成,請嘗試使用CodeSynthesis。我已經有了很好的結果。