2010-03-24 110 views
0

在我的應用程序中,有一個玩家和10個目標在那裏。每個目標依次出現(從目標1到目標10)。這是一款射擊遊戲。如果我們擊中第一個目標,那麼第二個目標就會到來。目標具有屬性,如名稱,speedOfGunDraw,擊中球員的概率,speedOfFire。 我該怎麼做才能使它們與這些屬性一個接一個出現。我正在使用CCMenuItem作爲目標。我爲玩家使用了一個精靈。請給我想法做到這一點。 謝謝。如何從一組sprite中添加sprite圖像,這些sprite對每個sprite都有不同的屬性?

回答

2

爲了解決您的問題:使用Cocos2D,您的場景會創建精靈。您可以獲取當前正在運行的場景併發送一條消息(例如,「我被槍殺」)。這可以通過導演完成。

[[CCDirector sharedDirector] runningScene]; // returns a pointer to the running scene 
[[[CCDirector sharedDirector] runningScene] someoneShotMe: self]; // will message the scene that you're shot. 

另外,如果您的場景不控制的東西,設置對象您希望瞭解作爲代表,在創建了「敵人」。

Enemy * enemy1 = [[Enemy alloc] init]; 
[enemy1 setDelegate: self]; 

// and then from your enemy object, you call a message on the delegate 
[self->delegate someoneShotMe: self]; 

我想你已經過去了,因爲你不使用MVC。

你不應該將sprite的子類別賦予它們超出「view」的功能。

probabilityToHitPlayer這樣的屬性不會直接影響視圖,所以不應該存儲在精靈中。

創建一個新類,像Enemy(的NSObject亞類),它包含一個子畫面,與像probabilityToHitPlayer

敵人然後可以處理邏輯其他屬性一起(它是一個控制器)而雪碧處理可見的部分。

此外,使用菜單項,因爲他們有觸摸檢測?不漂亮。相反,看看CCTargetedTouchDelegate。