我正在开发一款类似流氓的游戏(iOS / Cocos2d)。我有一个类Map的对象,它有一堆GameObjects。
我有GameViewController类。当模型中的某些东西发生时(生物被杀死,玩家被移动,任何东西),我需要通知GameViewController这个变化。怎么做?
我看到两个选项:
哪种方式更好?为什么呢?
答案 0 :(得分:0)
Cocos是一个基于强单身的库,所以单例方法在Cocos游戏中很常见。但这并不意味着它是合乎逻辑的默认选择。
对于任何计划而言,您的第二种选择通常是更明智和更安全的方法,而不仅仅是科科斯。 NSNotifications允许您从其他对象通知对象,而不会陷入在程序中传递大量引用或单例的潜在错误状态。如果您可以通过一些通知实现目标,那么这就是您的目标。
如果您发现极端程度使用NSNotifications,例如每秒多次通知,那么您应该考虑通过指针在对象之间传递引用,或者将父类或主Cocos场景类创建为单例。
请记住,当你涉及单身人士时,虽然他们很容易实施,但滥用他们也同样容易。你不想养成让孩子们控制兄弟姐妹行为的习惯,因为他们可以轻松地访问父母和父母的方法。