我正在嘗試做一個簡單的遊戲。我有一個屏幕緩衝區的類,一個圖像類和一個精靈類。我的問題是這樣的:
由於每個精靈都需要「屬於」某個圖像(精靈只保存某個圖像中的座標,並且指向圖像的指針),我應該將圖像類傳遞給精靈構造函數,像這樣:設計模式定義
Sprite spriteInstance(imageInstance, rect, ...);
或具有由圖像類
Sprite spriteInstance = imageInstance.createSprite(rect, ...);
抑或是個人喜好的問題的方法返回的精靈。 (都顯然工作,我只是想知道如果一個被認爲是「對」或「專業」方式做到這一點。)
圖像/屏幕關係也是如此:如果表面返回屏幕或圖像通過屏幕。
,我還沒有嘗試過實施還有第三種選擇是有一個「遊戲」類,而做到這一點:
Game gameInstance;
Image imageInstance = gameInstance.loadImage(path);
Sprite spriteInstance = gameInstance.newSprite(imageInstance, rect, ...);
如果上面的第二/第三方法建議,應該精靈類構造函數作爲「朋友」與圖像類進行私有化,還是保留爲公共?這種類型的方法有一個名字,我可以查找進一步的洞察力?這是什麼被稱爲「工廠模式」?
感謝
目前我沒有遊戲課。也許我應該。我提到這是一個想法,我想到有一個對象負責遊戲的各個方面,包括創建對象 – baruch 2010-11-17 21:42:58
是的,這是正確的。圖像的命名對我來說不太清楚,也許是一些動詞?如果它是Create.Sprite.forImage它會。這裏的Create是你的靜態或單例(又稱工廠),Sprite是屬性對象,forImage是Sprite類的方法 – user44298 2010-11-17 21:49:32