創建CCNode
子類。我們將其稱爲Custom
。在Custom
之內,將會有一個CCSprite
實例(稱爲mySprite
)和一個float
屬性(稱爲myTimer
)。到目前爲止,我們得到了如下的東西:
#import <Foundation/Foundation.h>
#import "cocos2d.h"
@interface Custom : CCNode {
CCSprite *mySprite;
float myTimer;
}
@property(readwrite)float myTimer;
@end
好。請記得在Custom
的init
函數中初始化myTimer
。值將是0.0
。
現在轉到您的遊戲場景。這裏我們將設定一個時間表。轉到您的遊戲場景的init
功能,並把:
[self schedule:@selector(updateCustomTimers:)interval:0.1];
當然,你必須創建在你的遊戲場景類updateCustomTimers
方法。
-(void)updateCustomTimers {
for (Custom *myCustomInstance in arrayOfCustomInstances) {
myCustomInstance.myTimer += 0.1;
}
}
注意arrayOfCustomInstances
是NSMutableArray
這是應該持有的Custom
所有實例中的遊戲場景:好,現在你需要做的就是通過你已經和增加他們的計時器每Custom
實例迭代。因此,無論何時創建新的Custom
實例,都將其添加到數組中。
現在,您可以更新遊戲中每個精靈(包裝在自定義類中)的各個定時器。計分計算應該很容易(您可以通過使用myTimer
浮點屬性訪問任何Custom
實例的計時器)。
這似乎是一個很好的方法。三角洲部分很重要。 – 2011-12-23 11:15:02
我覺得我喜歡這個答案最好。你可以解釋一下,在CCSprite類中添加'scheduleUpdate'實際上是做什麼的?我試圖推斷你在這裏給我的信息,所以我可以使用其他地方的概念。謝謝你的時間! – GreenWire 2011-12-30 22:55:48
scheduleUpdate只是指示Cocos2D每幀調用一次 - (void)update:(ccTime)delta方法。這通常用於每幀改進遊戲,例如更改精靈的位置等。 – LearnCocos2D 2012-01-08 09:36:09