Spritekit如何运行一个方法一段时间,然后启动另一个
Posted
技术标签:
【中文标题】Spritekit如何运行一个方法一段时间,然后启动另一个【英文标题】:Spritekit how to run a method for a certain amount of time, then start another one 【发布时间】:2014-07-26 20:32:59 【问题描述】:我正在制作一款游戏,但目前我很困惑如何让一个方法运行一段时间,然后关闭,然后让另一个方法开始运行。目前我有:
[self spawn];
当场景设置时。这里是 spawn 方法:
-(void)spawn
int xMin = 0;
int xMax = 460;
CGPoint startPoint = CGPointMake(xMin + arc4random_uniform(xMax - xMin),320);
[self performSelector:@selector(spawn) withObject:nil afterDelay:.20];
SKSpriteNode *blue = [SKSpriteNode spriteNodeWithImageNamed:@"whitecircle"];
blue.position = CGPointMake(startPoint.x,startPoint.y);
blue.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:21.5];
blue.physicsBody.usesPreciseCollisionDetection = NO;
blue.physicsBody.categoryBitMask = gainCategory;
blue.physicsBody.contactTestBitMask = playerCategory;
blue.physicsBody.dynamic = NO;
[self addChild:blue];
SKAction *runBlue = [SKAction moveToY:0 duration:1.5];
SKAction *remove = [SKAction removeFromParent];
[blue runAction:[SKAction sequence:@[runBlue,remove]]];
我想知道的是我怎样才能让这个方法运行一段时间,然后我如何在这个方法完成后开始另一个方法。谢谢
【问题讨论】:
您不能在一定时间内运行方法 - 但您可以在给定时间内以给定频率(固定或可变)重复调用方法。你是这个意思吗? @LearnCocos2D 是的,这就是我应该问的。 【参考方案1】:我认为这就是你想要做的:
// set duration to seconds you want to wait between spawns
float duration = 1;
SKAction *actionWait = [SKAction waitForDuration:duration];
SKAction *actionSpawn = [SKAction runBlock:^(void)
[self spawn];
];
SKAction *actionSequence = [SKAction sequence:@[actionWait, actionSpawn]];
SKAction *actionRepeat = [SKAction repeatActionForever:actionSequence];
[self runAction:actionRepeat];
值得至少阅读一次SKAction
的类参考,以便您了解它的功能。
SKAction Class Reference
【讨论】:
以上是关于Spritekit如何运行一个方法一段时间,然后启动另一个的主要内容,如果未能解决你的问题,请参考以下文章