平台问题? (Cocos2D中)

时间:2011-11-19 21:31:58

标签: ios cocos2d-iphone spawning

在我的游戏中,我有类似于Doodle Jump的平台。它们每个都有自己的动画,但它们最终都有一个b2ContactListener的相同标签。 现在我正在使用CCSprite,但我认为这不会起作用。我该怎么做呢?

目前我正在使用CCSprite而且我遇到了这个崩溃(SIGABRT):

2011-11-19 15:56:57.555 App[11306:707] *** Assertion failure in -[CCLayerClass addChild:z:tag:], /Users/myName/Desktop/Projects/MyProjectName/MyProject/cocos2d/CCNode.m:390
2011-11-19 15:56:57.557 App[11306:707] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Argument must be non-nil'

我认为这是因为我的CCSprite是正确的?但我不确定为什么它是零。 我在我的.h中宣布它 然后在我的spawn方法中,我这样做(伪代码):

if (object type is NSString) {
[CCSprite spriteWithfile:];
}
else {
[CCSprite spriteWithCGImage:];
}
[self addChild mySprite];

此外,如果我在if语句中使用断点,则表示超出范围。关于如何才能正常运作的任何想法?

谢谢!

答案:我最终解决了这个问题,因为我访问UIImage的方式不正确。我现在通过强制转换对象类型来修复它然后它工作了。而且就效率而言,我正在调用我的一种方法,就像我不想要的游戏循环,所以我现在正在修复它。

1 个答案:

答案 0 :(得分:1)

也许您只是忘了将创建的精灵分配给mySprite?

if (object type is NSString) {
mySprite = [CCSprite spriteWithfile:];
}
else {
mySprite = [CCSprite spriteWithCGImage:];
}
[self addChild mySprite];