2013-05-29 101 views
0

我想了解遊戲創建中的對象管理。我正在與Cocos2d-x合作。有多個場景和圖層的cocos2d-x對象管理

我有一個場景,它有幾層。這些層分別由幾層構成。

用戶通過觸摸事件將對象添加到圖層。

我在管理一切時遇到困難。

是創建一個包含遊戲圖層的矢量的一種可能方法(不是構成整個遊戲背景的圖層),並且每個圖層都有自己的圖層上的對象以及每個圖層的狀態。

那麼,我怎樣才能真正影響基於另一層中發生的事情的單獨圖層的狀態。

我想我可能正在努力結合一種很好的方式來存儲遊戲中正在發生的事情,並確保我可以訪問這些對象來改變它們。

是否可以創建一個CCScene,然後創建多個CCScenes?而不是在各個層之間來回滑動,用戶在場景之間來回滑動,我使用父CCScene來了解其他CCScenes創建的情況。或者我會創建一個CCNode,然後創建多個CCScenes並使用該節點來跟蹤發生的事情。

回答

1

我認爲你正在尋找的解決方案是更有效地使用類。我現在有一個遊戲,玩家必須在4個「走廊」管理活動,每個走廊由3個「行」組成,每行包含各種壞人,好人等等。您通過滑動在走廊上循環,每次只能看到1個走廊,因此每個走廊都是自己的走廊。管理散佈在走廊上的壞人的噩夢是一場噩夢,並且效率非常低,所以我需要一種很好的方式將壞人分成幾組,而在主要功能中沒有大量的硬編碼數組......這就是我做了它:

在「自我」裏面有4個大廳hud層,每個大廳裏面有3行是NSMutableArrays,每行內部有少數代表演員類型的數組(好人,壞人,碎片等) 。

在嵌套數組中可以使用所有這些。例如:

NSMutableArray *badGuys; 
NSMutableArray *goodGuys; 
NSMutableArray *row1 = [NSMutableArray arrayWithObjects: badGuys, goodGuys]; 
(repeat for row2, row3) 
NSMutableArray *hallWay1 = [NSMutableArray arrayWithObjects: row1, row2, row3]; 
NSMutableArray *mainGame = [NSMutableArray arrayWithObjects: hallway1, hallway2.... 

但是,這需要很多明確定義的變量。更簡潔的方法是使用類。

RowClass.h/RowClass.m 在.H:

NSMutableArray *myGoodGuys; 
NSMutableArray *myBadGuys; 

然後在.M使

-(NSMutableArray *) returnMyGoodGuys { return myGoodGuys }; 

HallwayClass.h/HallwayClass.m

RowClass *myRow1 = [[RowClass init] alloc]; 
RowClass *myRow2 = [[RowClass init] alloc]; 
RowClass *myRow3 = [[RowClass init] alloc]; 
NSMutableArray *allMyRows = [NSMutableArray arrayWithObjects: myRow1, myRow2, myRow3]; 

在裏面 。L:

- (NSMutableArray *) getRowNumber : (int)rowNumber { return allMyRows[rowNumber-1]; } 

HallwayClass *hall1 = [[HallwayClass init] alloc]; 

這樣的話,當你需要拔出好人在一定走廊

NSMutableArray *hall1row1GoodGuys = [[hall1 getRowNumber:1] returnMyGoodGuys]; 

做一些數組

[hall1row1GoodGuys retain]; 

另外,如果你要處理它在foreach循環中:

foreach(RowClass *row in hallway1.allMyRows) 
{ 
    do stuff 
} 

for(i=0; i<4; i++) 
{ 
    RowClass *nextRow = hallway1.allMyRows[i]; 
    stuff 
} 

定義類嚇壞了我的時間最長,但它們實際上是相當容易,如果你不overthink它,並做組織的東西奇觀工作。

希望你能從這一些中得到一些想法:3

+0

完美。這符合我的想法。您如何看待使用smart_ptrs來存儲數組等? – Jason