Flash 这个设计模式有效吗?

Flash 这个设计模式有效吗?,flash,design-patterns,cocos2d-iphone,Flash,Design Patterns,Cocos2d Iphone,我有一个CCScene和几个ccsprite作为节点添加到其中。然后我有一个子类(也添加到同一个CCScene类实例中),我们在这里称之为CCSprite,它有一些聪明的beheaviour。我想让这个类引用添加到主场景中的CCSprite节点,并修改它们的一些属性(例如可见性)。我当前的解决方案是添加一个指向NSMutableArray的指针作为任何类的成员变量 我使用CCScene类通过Whatever类触发这些动作。例如,我在特定时间调用whicher节点中的“TriggerAction”

我有一个CCScene和几个ccsprite作为节点添加到其中。然后我有一个子类(也添加到同一个CCScene类实例中),我们在这里称之为CCSprite,它有一些聪明的beheaviour。我想让这个类引用添加到主场景中的CCSprite节点,并修改它们的一些属性(例如可见性)。我当前的解决方案是添加一个指向NSMutableArray的指针作为任何类的成员变量

我使用CCScene类通过Whatever类触发这些动作。例如,我在特定时间调用whicher节点中的“TriggerAction”方法。此操作将修改属于同一父场景的ccsprite

我是一个新手,但这听起来像是对我潜在的危险,我想知道这是一个已知的设计模式,或者更糟的是,一个已知的错误

有使用这种模式的经验吗?我添加了“Flash”作为标签,因为Cocos2D继承了Flash的一些概念

编辑:

任何一种特殊精灵(如行星)在触摸时都应显示LevelIcon精灵。我的问题是,我想根据屏幕上的行星位置来定位标高图标,最简单的方法是将它们添加到包含行星的场景中。我现在将探索一种解决方案,即它们只作为任何子壳添加到行星上。。问题是这样的,我把它们结合在一起很多,我不能在其他不需要LevelIcons的场景中循环使用Whatever类


这是一种正常模式,但由于兄弟姐妹保留了其他兄弟姐妹,因此存在内存泄漏的可能性

更好的解决方案是使精灵成为控制节点的子节点。这样,您就不必冒保留循环的风险,也不必使用单独的数组来保留对精灵的引用,因为它们已经在子数组中了。可以使用标记来标识单个精灵


如果“Whatever”实际上(不需要)显示任何内容,则应将CCNode用作超类,而不是CCSprite。

如果我们明确了解您的意图,我们将能够更好地帮助您。你能举一个“真正的游戏”的例子吗?我看到的真正的问题是,你不能确定这些操作将以什么顺序进行。因此,“which's”动作可能在下一次更新之前不会“生效”。which是一个特殊的精灵(如planet),当被触摸时应该显示LevelIcon精灵。我的问题是,我想根据屏幕上的行星位置来定位标高图标,最简单的方法是将它们添加到包含行星的场景中。我现在将探索一种解决方案,即它们只作为任何子壳添加到行星上。。问题是这样的,我把它们结合在一起很多,我不能在其他不需要LevelIcons的场景中循环使用Whatever类。