我正在研究一種音樂工作人員類(CCNode)和音符類(CCSprite)的音樂符號應用程序。關於父母/孩子互動的面向對象設計偏好
注意添加到音樂的工作人員,如:
// MusicStaff.m
[self addChild:note];
注意事項有一個粒子發射器,這需要被添加到父..我認爲做這樣的事情:
// Note.m
[self.musicStaff addChild:self.emitter];
並不酷,因爲我不喜歡控制員工的筆記的想法---我喜歡將員工視爲控制其擁有的孩子的人員。
我真的覺得這個粒子發射器應該是Note的孩子,因爲它在技術上是音符的一部分,而不是音樂人員的一部分 - 所以將它添加到音樂人員本質上感覺不對。但是,根據我對cocos2d的瞭解,雖然可以將子元素添加到CCSprite,但子元素不管理子元素的繪製,因此此粒子發射器不可見。
這就是說,因爲據我所知,去了解這是發射器添加到員工的唯一途徑,我寧願做:
// MusicStaff.m
[self addChild:note];
[self addChild:note.emitter];
然而,在我的項目團隊成員感覺這是「倒退」和「啞」,並且該筆記應該將發射器直接添加到其母公司。我只是尋求一些反饋,如果我的想法是真的「倒退」和「啞」,或者如果我有一個有效的點...
另外我很好奇,如果有另一種方法來解決這個問題,發射器直接註釋並使其以某種方式吸引其子女?
所以..如果注意將是一個CCSpriteBatchNode,如何將添加一個粒子效果呢?沒有選擇,只能直接將其添加到工作人員對象? – patrick