Sprite kit 如何停止无休止地玩SpriteKit发射器?
我正在努力阻止发射器在我的精灵套件项目中没完没了地播放。寿命设置被设置为Sprite kit 如何停止无休止地玩SpriteKit发射器?,sprite-kit,skemitternode,Sprite Kit,Skemitternode,我正在努力阻止发射器在我的精灵套件项目中没完没了地播放。寿命设置被设置为Start=1和End=0,它显示我想要的正确结果(只发出一次) 当我在它不断发出的更新方法中调用它时,问题出现了,我尝试使用removeFromParent和removeAllAction,但没有成功。你能帮我解决这个问题吗 -(void)update:(NSTimeInterval)currentTime { [self updateheartPositionFromMotionManager]; [s
Start=1
和End=0
,它显示我想要的正确结果(只发出一次)
当我在它不断发出的更新方法中调用它时,问题出现了,我尝试使用removeFromParent
和removeAllAction
,但没有成功。你能帮我解决这个问题吗
-(void)update:(NSTimeInterval)currentTime {
[self updateheartPositionFromMotionManager];
[self matchIt];
if ( _heart.position.x == 512 && _heart.position.y == 484 ){
SKEmitterNode *emitter = [NSKeyedUnarchiver unarchiveObjectWithFile:
[[NSBundle mainBundle] pathForResource:@"sparkly" ofType:@"sks"]];
emitter.position = CGPointMake(self.frame.size.width/2,
CGRectGetMidY(self.frame)+100);;
emitter.name = @"exhaust";
emitter.targetNode =_heart;
[self addChild:emitter];
}else{
[self removeFromParent];
}
}
//步骤1取一个全局变量 @房地产价格上涨;在您的.h文件中 在.m文件的init或instance方法中 sparkyadded=假 -(无效)含铅的 {
[node removeAllActions];
[node removeFromParent];
sparklyAdded=FALSE;
}];
}
-(无效)更新:(NSTimeInterval)当前时间{
[self updateheartPositionFromMotionManager];
[self matchIt];
if (( _heart.position.x>= 512 && _heart.position.y=< 484 ) && !sparklyAdded){
SKEmitterNode *emitter = [NSKeyedUnarchiver unarchiveObjectWithFile:
[[NSBundle mainBundle] pathForResource:@"sparkly" ofType:@"sks"]];
emitter.position = CGPointMake(self.frame.size.width/2,
CGRectGetMidY(self.frame)+100);;
emitter.name = @"exhaust";
emitter.targetNode =_heart;
[self addChild:emitter];
sparklyAdded=TRUE;
}else{
[self removeEffect];
}
[node removeAllActions];
[node removeFromParent];
sparklyAdded=FALSE;
}];
{
[名称为@“排气”的自枚举子节点使用block:^(SKNode*节点,布尔*停止){
[node removeAllActions];
[node removeFromParent];
sparklyAdded=FALSE;
}];
}
//在添加粒子时,请记住少部分大腿
1) 它们是昂贵的cpu调用,所以从更新循环中只添加和删除它们一次将其从更新方法中删除。因此,如果
\u heart
的位置匹配,您将创建一个发射器。对我来说,这看起来很难看,您很有可能每秒创建60个发射器。就像@akashg所说的,从您的更新方法中删除创建的发射器。我推荐您看看SKEmitterNode的属性。我知道我正在做一些不同的事情。让我今天试一试并更新我的结果。非常感谢您的专家评论,我今天晚上将尝试并发布我的结果。