gpt4 book ai didi

ios - 有没有一种简单的方法可以在 SpriteKit 的计算中使用小数?

转载 作者:行者123 更新时间:2023-11-29 12:47:37 25 4
gpt4 key购买 nike

我是 sprite kit 的新手,正在编写一个简单的游戏作为学习它的一种方式。

我的目标是让我的 Sprite 以随机速度在屏幕上移动。这个 sprite 是定期生成的,它可能达到的最大速度应该随着时间的推移而增加,以使游戏更加困难。

为此,我使用分数(基于时间的整数)来影响 Sprite 移动的最短持续时间。正如下面的代码所示,我尝试这样做的方式仍然只产生整数值。我希望拥有比整数更多的粒度。

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];

我开始使用 float 变量来响应 nielsbot 的评论,并更改了我的代码结构以反射(reflect)我的更改,但我仍然只得到整数值,而不是我正在寻找的小数。有谁知道为什么会这样?

解决:我把整型变量改成了浮点型变量再放入计算。感谢 nielsbot 的帮助!

最佳答案

float actualDuration = rando/denom + 1;
NSLog(@"%f", actualDuration);

我对转换规则不是 100% 有信心,但据我所知,发生的事情是 randodenom 是整数并且使用了整数除法,产生一个整数值。

因此,您至少需要将分母转换为 float,但最好同时转换它们,以及对常量值使用标准的 float 表示法(1.0f):

float actualDuration = (float)rando / (float)denom + 1.0f;
NSLog(@"%f", actualDuration);

就我个人而言,在计算中使用它们时,我倾向于将所有整数值转换为 float/double/CGFloat,这样就不会出现任何转换规则问题。

关于ios - 有没有一种简单的方法可以在 SpriteKit 的计算中使用小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23257368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com