ランダムなスプライトを生成して画面上を移動したい。
CGRectIntersectsRect
プレイヤーとランダムに生成されたスプライトの間の衝突を検出するために使用しています。
私はこれを行いました.コードは正常に動作します-間隔が設定されている場合。
ただし、スプライトのスポーン時間にランダム性を追加すると、衝突が常に機能するとは限りません。ほとんどの衝突はまったく機能しません。
何が間違っているのかわからないので、正しい方向への助けに本当に感謝しています。
スケジュール間隔と、スプライトが画面上を移動するのに実際にかかる時間と関係があると思います。
よくわかりません。
enemySprite
また、可能であれば、シーンが画面から消えた後にシーンから削除する最良の方法も知りたいですか?
これが私のコードです:
-(void)targetTimer {
[self schedule: @selector(enemySprite:) interval: 3.0f];
}
-(void)enemySprite:(id)sender {
CGSize winSize = [[CCDirector sharedDirector] winSize];
//SPAWN ENEYMY
enemySprite = [CCSprite spriteWithFile:@"eneymySprite.png"];
enemySprite.position = ccp (winSize.width/16, winSize.height/5);
[self addChild:enemySprite z:300];
CCAction *moveEnemyRight = [CCMoveTo actionWithDuration:3 position:ccp (winSize.width/1, winSize.height/5) ];
[enemySprite moveEnemyRight];
if ( enemySprite.position.y >= winSize.width ) {
//Best Way to Remove enemySprite from Scene?
}
NSLog(@"Collision");
[self unschedule:@selector(enemySprite:)];
unsigned int t = arc4random()%4 + 1;
[self schedule:@selector(enemySprite:) interval: t];
}