我正在开发一个音乐符号应用程序,它有一个音乐人员类(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];
但是,我项目中的一个团队成员认为这是“倒退”和“愚蠢”,并且注释应该将发射器直接添加到其父级。我只是寻求一些反馈,看看我对此的想法是否确实“落后”和“愚蠢”,或者我是否有一个有效的观点......</p>
我也很好奇是否有另一种方法来解决这个问题,比如将发射器直接添加到音符并让它以某种方式绘制它的孩子?