cocos2d でゲームを作ろうとしていますが、画面の上部からスプライトが落ちてきます。これで、スプライトがタップされると、元に戻るはずです。これは私にとっては問題なく機能しますが、スプライトが画面から消えた後に元に戻る場合があります。また、スプライトが画面上の特定の y 軸位置に到達しても消えません。ここに私のコードの一部があります
-(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint loc = [[CCDirector sharedDirector]convertToGL:[touch locationInView:[touch view]]];
CGRect rect = CGRectMake(sprite.position.x - (sprite.contentSize.width/2), sprite.position.y - (sprite.contentSize.height/2), sprite.contentSize.width, sprite.contentSize.height);
if(CGRectContainsPoint(rect, loc))
{
[sprite runAction:[CCCallFuncN actionWithTarget:self selector:@selector(spriteCaught)]];
}}
-(void)spriteCaught
{
//currentPos is an integer to get the current position of the sprite
id moveUp = [CCMoveTo actionWithDuration:1 position:ccp(currentPos, 500)];
[sprite runAction:[CCSequence actions:moveUp, nil]];
if(sprite.position.y >= 480)
{
[self removeChild:sprite cleanup:YES];
}}
また、構文が正しいかどうかはわかりませんが、条件ステートメント (スプライトの y 軸の位置をチェックするステートメント) も機能しません。これを修正するにはどうすればよいですか?どんな助けや提案も大歓迎です