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:是];