【发布时间】:2014-04-24 16:58:16
【问题描述】:
我是 sprite kit 的新手,正在编写一个简单的游戏来学习它。
我的目标是让我的精灵以随机速度在屏幕上移动。这个精灵会定期生成,它可能达到的最大速度应该随着时间的推移而增加,以使游戏更加困难。
为此,我使用分数(基于时间的整数)来影响精灵的最小移动持续时间。我试图这样做的方式,如下面的代码所示,仍然只产生整数值。我希望拥有比整数更多的粒度。
int rando = (arc4random() % 150) + 50;
int denom = _scores + 50;
float actualDuration = rando/denom + 1;
NSLog(@"%f", actualDuration);
SKAction * actionMove = [SKAction moveTo:CGPointMake(-_blimp.size.width/2, actualY) duration:actualDuration];
我开始使用浮动变量来响应 nielsbot 的评论,并更改了我的代码结构以反映我的更改,但我仍然只得到整数值,而不是我正在寻找的小数。有谁知道为什么会这样?
已解决:我将整数变量更改为浮点变量,然后再将它们放入计算中。感谢尼尔斯博特的帮助!
【问题讨论】:
-
(稍微)更好地使用
arc4random_uniform()与%运算符 -
如果你想要一个 0-5 之间以 0.1 为增量的随机浮点数,产生一个 0-50 之间的随机整数,转换为浮点数,然后除以 10.0。现在你有 50 种可能的速度。依此类推,具体取决于您想要的粒度。
标签: ios decimal sprite-kit