0
我有一个我正在做的游戏的时间限制器,我现在正在使用的是初始值并扣除每帧更新的一个值。这里是代码:为游戏创建计时器的最佳方式
- (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
它不工作,除非它是一个绝对值,是有反正我可以让这个更顺畅,调整“计时器“以更平滑的方式?
嘿,谢谢你的回复,但是现在我发现了这个问题,你会发现当你想用float扩展一个东西时显然你应该在''1.5f'的末尾使用'f',但是在我的例子多数民众赞成没有发生,它做'1.5'而不是!你能告诉我我该怎么做吗? – ahoura
我不认为这是你的问题。把'f'放在小数值文字的末尾意味着你希望这个数字明确地是一个'float'而不是'double'(在十进制文字中是objective-c的默认值)。什么是真正的是,你有'全时/ 4000'是执行整数除法而不是浮点除法。你可以通过编写'(float)10.0 * fullTime/4000.0'来解决这个问题。不过,您的动画代码依赖于帧速率,这种帧速率永远不会尽可能平滑。 – Sean
非常感谢,你的代码实际上工作,我知道动画不会是,对于我已经使用过'runAction'的其他东西,但我不能得到我的头我怎么会用runAction这样做,而当前的代码有一个半平滑的动画到它。最后一个问题,ScaleX,无论如何都要从精灵的一侧而不是双方调整大小/ setScaleX? (当前代码从两侧扩展图像) – ahoura