我建議你看看可可的NSNotificationCenter
和相關的類。 Apple有一個主題here的指南。
它可能是這樣的。
在你的HUD層,你訂閱通知名爲@"battleLayerStuff"
:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(doThisWhenSomethingHappens:)
name:@"battleLayerStuff"
object:nil];
而在你的戰鬥層,有事時,你張貼具有相同名稱的通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"battleLayerStuff"
object:battleObject];
對象部分是可選的,但如果您想發送更多信息而不僅僅是「發生了什麼」,它可能會有所幫助。
如果要提取您發送您的對象的信息做到這一點的方法doThisWhenSomethingHappens:
:
- (void)doThisWhenSomethingHappens:(NSNotification *)notification
{
BattleObject *battleObject = (BattleObject *) notification.object;
// Do stuff with object
}
.....你這該死的性能。我忘了,呃.... noob錯誤,謝謝:) – Voldemort
如果IScene是從CCScene派生的,你應該確保你不保留這個屬性。這可能導致內存泄漏,因爲cocos2d保留添加到其節點層次結構中的每個對象。 –
而不是@property(保留,非原子)我只是把@property(非原子)? – Voldemort