2

私の目標は、ユーザーが画面に触れた後にスプライト leftOn を画面に追加することです。

これが私のコードです:

-(void)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{
     CGPoint location = [touch locationInView:[touch view]];
     location = [[CCDirector sharedDirector]convertToGL:location];


if (CGRectContainsPoint([leftOff boundingBox],location)) {
    CCLOG(@"Left Pressed");
    [self addChild:leftOn];

}

}

ログは常に「Left Pressed」を出力しますが、スプライトを追加せずに実行を停止します。init メソッドにスプライトを追加すると表示されます。また、スプライトの順序を [self addChild:leftOn z:2] のように変更してみましたが、それでも表示されません。

4

2 に答える 2

0

「実行が停止する」とはどういう意味ですか? アプリケーションがクラッシュしますか? Ben Trengrove が言ったように、 leftOn が ではないことnilと、このスプライトが別の親に追加されていないことを確認してください。どちらの場合も、クラッシュを引き起こす可能性があります。アプリがクラッシュした場合、コンソールからエラーを確認できると便利です。どこに問題があるかを理解するのに役立ちます。

于 2012-11-01T07:07:35.410 に答える
0

私は cocos2d を使い始めたばかりですが、私が見たデモでは、ccTouchesEnded にスプライトを追加し、ccTouchesBegan を使用して、既に存在し、触れられているものに対するアクションを実行しています。

于 2012-11-01T07:19:02.783 に答える