【问题标题】:CCSprite + NSCodingCCSprite + NSCoding
【发布时间】:2012-05-05 02:06:55
【问题描述】:

我已经对NSCoding 进行了子类化,并向其中添加了我的游戏特定内容,例如健康等。我已经序列化了我已经子类化的对象,但是在解码然后通过[self addChild:sprite] 将精灵添加到屏幕时,它无法绘制精灵到屏幕上。 我猜这是因为CCSprite 还需要实现NSCoding 协议所以我的问题是:

1) 我对上述假设是否正确(我不想浪费时间实施此解决方案,只是发现这不是问题) 2) 让CCSprite 实现NSCoding 的最佳方法是什么?是使用Categories还是仅仅子类化并强制子类实现NSCoding协议?

【问题讨论】:

  • 我没有找到你的前两个语句之间的联系.. 一方面你说你是 NSCoding 的子类......并向它添加了变量.. 这个类如何与你的 CCSprite 对象相关,因为 sprite 必须是一个 CCSprite 对象而不是 NSCoding 对象?对?如果我错了,请纠正我...
  • 抱歉,我写的时候已经很晚了,我一大早就想出了解决方案。我遇到的问题是我将 CSSprite 的子类从一个进程发送到另一个进程,我很困惑为什么精灵没有在接收进程中显示。我发现并不是所有的精灵数据都被序列化了。我实施的解决方案是只发送我需要的信息,如坐标、图像名称等,然后在接收端从头开始重建精灵:)

标签: iphone objective-c cocos2d-iphone ccsprite nscoding


【解决方案1】:

LOL 抱歉,我写的时候已经很晚了,我一大早就想出了解决方案。我遇到的问题是我将 CSSprite 的子类从一个进程发送到另一个进程,我很困惑为什么精灵没有在接收进程中显示。我发现并不是所有的精灵数据都被序列化了。我实施的解决方案是只发送我需要的信息,例如坐标、图像名称等,然后在接收端从头开始重建精灵:)

【讨论】:

  • 我在游戏中使用 NSCoding 时所做的相同......这就是为什么我很惊讶看到你的问题......因为你需要从头开始创建精灵......只是它的属性,如位置,您想要的健康等来自序列化对象..您无法使用 NSCoding 保存 CCSprite.. :)
  • 是的,感谢上帝的捷径,否则我现在会心脏病发作:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多