为游戏创建计时器的最佳方法

时间:2011-10-09 22:57:23

标签: objective-c ios4 cocos2d-iphone

我正在玩游戏的时间限制器,我现在正在做的是使用初始值并扣除每帧更新一个值。这是代码:

- (void) gameTime {
    fullTime = fullTime - 1;
    NSLog(@"%i", fullTime);
    float xScale = 10 * fullTime / 4000;
    //_game.timerGraphic.scaleX = 10;
    //[_game.timerGraphic setScaleX:10];
    [_game.timerGraphic setScaleX:xScale];    
}

现在的问题是timerGraphicCCSprite,当我更新ScaleX时它除了绝对值之外无法工作,无论如何,我可以使这更顺畅并调整大小“计时器”以更顺畅的方式?

1 个答案:

答案 0 :(得分:2)

这种方法的问题在于,您的应用中的计时器是否取决于帧速率。 Cocos2D有一些内置的机制来处理这些问题。特别是,我们的想法是,每次加载新帧时,都会根据前一帧和当前帧之间过去的时间更新动画值。请查看this Cocos2D tutorial中的“移动内容”部分。它解释了如何安排选择器(即,创建一个计时器来触发-nextFrame:方法)。此方法传递dt(增量时间)参数,该参数可用于创建平滑动画。