我想要一个随机的精灵生成并在屏幕上移动。
我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];
}