Random 如何随机移动精灵并保持碰撞工作-Cocos2d?

Random 如何随机移动精灵并保持碰撞工作-Cocos2d?,random,cocos2d-iphone,sprite,Random,Cocos2d Iphone,Sprite,我想要一个随机的精灵产卵并在屏幕上移动 我使用CGRectIntersectsRect来检测玩家和随机产生的精灵之间的冲突 我做到了这一点,代码运行良好-当我有一个设置的间隔 但是,当我将随机性添加到精灵的繁殖时间时,碰撞并非始终有效。大多数碰撞根本不起作用 我不确定我做错了什么,如果能在正确的方向上得到帮助,我将不胜感激 我认为这与时间间隔以及精灵在屏幕上移动的实际时间有关 不过我不确定 另外,如果可以的话,我还想知道在屏幕关闭后从场景中删除Eneysprite的最佳方法 这是我的密码: -(

我想要一个随机的精灵产卵并在屏幕上移动

我使用
CGRectIntersectsRect
来检测玩家和随机产生的精灵之间的冲突

我做到了这一点,代码运行良好-当我有一个设置的间隔

但是,当我将随机性添加到精灵的繁殖时间时,碰撞并非始终有效。大多数碰撞根本不起作用

我不确定我做错了什么,如果能在正确的方向上得到帮助,我将不胜感激

我认为这与时间间隔以及精灵在屏幕上移动的实际时间有关

不过我不确定

另外,如果可以的话,我还想知道在屏幕关闭后从场景中删除
Eneysprite
的最佳方法

这是我的密码:

-(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];
}

你必须设置一组敌人来检查他们是否离开游戏区(在你的情况下是屏幕)。在您的代码中,这一部分

if ( enemySprite.position.y >= winSize.width ) {

    //Best Way to Remove enemySprite from Scene?

}
永远不会被召唤。因为
EneySprite.position.y>=winSize.width
将始终是
NO
,因为您刚刚创建了这个精灵,并将其放置到带有坐标的游戏区域

ccp(winSize.width/16, winSize.height/5)

你必须设置一组敌人来检查他们是否离开游戏区(在你的情况下是屏幕)。在您的代码中,这一部分

if ( enemySprite.position.y >= winSize.width ) {

    //Best Way to Remove enemySprite from Scene?

}
永远不会被召唤。因为
EneySprite.position.y>=winSize.width
将始终是
NO
,因为您刚刚创建了这个精灵,并将其放置到带有坐标的游戏区域

ccp(winSize.width/16, winSize.height/5)

第二个问题的答案。[sprite removeFromParentAndCleanUp:是];第二个问题的答案。[sprite removeFromParentAndCleanUp:是];