0

私のゲームでは、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 が nil 正しいためだと思いますか? しかし、なぜゼロなのかはわかりません。.h で宣言し、spawn メソッドで次のようにします (疑似コード):

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

また、if ステートメントでブレークポイントを使用すると、Out of Scope と表示されます。これを適切に機能させる方法についてのアイデアはありますか?

ありがとう!

回答: UIImage へのアクセス方法が間違っていたため、最終的にこれを修正しました。オブジェクトタイプをキャストすることで修正しましたが、うまくいきました。また、効率に関する限り、私は望んでいないゲームループのような 1 つのメソッドを呼び出していたので、今それを修正しています。

4

1 に答える 1

1

おそらく、作成したスプライトを mySprite に割り当てるのを忘れただけでしょうか?

if (object type is NSString) {
mySprite = [CCSprite spriteWithfile:];
}
else {
mySprite = [CCSprite spriteWithCGImage:];
}
[self addChild mySprite];
于 2011-11-19T22:47:47.170 に答える