gpt4 book ai didi

Python float

转载 作者:太空狗 更新时间:2023-10-30 00:41:28 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Floating point equality in python

我的 Python 代码有一个小“问题”(我现在在 ika 游戏引擎中使用 2.5 版)。我目前正在为我的游戏编写脚本对象,我想知道以这种方式比较两个 float 是否安全:

我将举一个简短的例子说明我目前所做的事情。

每个对象都有一个速度,从 0 到 9,以 float 表示。例如

speed = 4.83
cord_x = 10.0
cord_y = 10.0

他们有一个 AddMovement 方法。这会设置一个 X、Y 值,并表示对象的目标坐标。

target_x = 25.0
target_x = 26.75
movement = True # This represents if the object is moveing or not

每一帧,最大速度等于这个值:

maximum_x_speed = abs(cord_x-target_x)
maximum_y_speed = abs(cord_y-target_y)

真正的速度是:

# Get the real X speed in this frame
if maximum_x_speed < speed:
real_x_speed = maximum_x_speed
else:
real_x_speed = speed

# Get the real Y speed in this frame
if maximum_y_speed < speed:
real_y_speed = maximum_y_speed
else:
real_y_speed = speed

现在,根据这个 real_x_speed 值和 real_y_speed 值,我从坐标中减去这个值。

if target_x < cord_x:
cord_x -= real_x_speed
elif target_x > cord_x:
cord_x += real_x_speed
if target_y < cord_y:
cord_y -= real_y_speed
elif target_y > cord_y:
cord_y += real_y_speed

最后,我检查是否相等

if cord_x == target_x and cord_y == target_y:
# Halt movement, reached goal
movement = False

我过去有过浮点错误,0.1 问题,就像...我担心这会导致某种错误。或者这在逻辑上是不可能的?

如果我有语法错误,请为他们道歉。英语不是我的母语...如果我应该改变这个逻辑,我真的很感激一些提示。

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