首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何每5秒增加一次NSNumber的值?

如何每5秒增加一次NSNumber的值?
EN

Stack Overflow用户
提问于 2014-11-08 22:57:16
回答 1查看 146关注 0票数 0

我正在建造一个游戏,我认为重力是这样的:

代码语言:javascript
复制
self.physicsworld.gravity = CGVectorMake(gravityX , gravity-Y);

随着时间的推移,我想改变精灵节点上的作用力。

因为我是新手,所以我无法编写循环代码,从而使重力随着时间的变化而改变,从而改变了游戏的难度。如果我希望浮动变量gravityX每5秒增加0.5,那么代码应该实现什么。

我在这里使用FOR循环所面临的主要问题是在这种情况下,我不知道如何让计算机理解游戏开始后的实际时间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-12 19:57:17

这可以使用SKAction类来完成。将以下方法添加到您的SKScene子类中,并在希望重力开始增加时调用它。我已经包括了目标C和Swift版本。

目标-C:

代码语言:javascript
复制
- (void)startGravityIncrease {
    SKAction *blockAction = [SKAction runBlock:^{
        CGVector gravity = self.physicsWorld.gravity;
        gravity.dx += 0.5;
        self.physicsWorld.gravity = gravity;
    }];
    SKAction *waitAction = [SKAction waitForDuration:5];
    SKAction *sequenceAction = [SKAction sequence:@[waitAction, blockAction]];
    SKAction *repeatAction = [SKAction repeatActionForever:sequenceAction];

    [self runAction:repeatAction];
}

斯威夫特

代码语言:javascript
复制
func startGravityIncrease() {
    let blockAction = SKAction.runBlock { () -> Void in
        self.physicsWorld.gravity.dx += 0.5
    }
    let waitAction = SKAction.waitForDuration(5)
    let sequenceAction = SKAction.sequence([waitAction, blockAction])
    let repeatAction = SKAction.repeatActionForever(sequenceAction)

    self.runAction(repeatAction)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26823003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档