我正在玩游戏的时间限制器,我现在正在做的是使用初始值并扣除每帧更新一个值。这是代码:
- (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];
}
现在的问题是timerGraphic
是CCSprite
,当我更新ScaleX
时它除了绝对值之外无法工作,无论如何,我可以使这更顺畅并调整大小“计时器”以更顺畅的方式?
答案 0 :(得分:2)
这种方法的问题在于,您的应用中的计时器是否取决于帧速率。 Cocos2D有一些内置的机制来处理这些问题。特别是,我们的想法是,每次加载新帧时,都会根据前一帧和当前帧之间过去的时间更新动画值。请查看this Cocos2D tutorial中的“移动内容”部分。它解释了如何安排选择器(即,创建一个计时器来触发-nextFrame:
方法)。此方法传递dt
(增量时间)参数,该参数可用于创建平滑动画。