Roblox Lua中的褪色球

时间:2018-07-21 21:41:41

标签: loops lua roblox

我正在尝试制作一个球,该球逐渐变淡为1,然后又变回0。 这是我的代码:

ball = script.Parent
trans = 0
while true do 
if trans < 1 then
    while trans < 1 do
        ball.Transparency = trans
        wait(0.1)
        trans = trans + 0.1 
    end
end
if trans == 1 then
    while trans <= 1 and trans >=0 do
        ball.Transparency = trans 
        wait(0.1)
        trans = trans -0.1 
    end
end
end

球确实消失了,但再也没有回来。此时,游戏将冻结。有什么解决办法吗?谢谢!

更新:所以我今天尝试了以下代码,但是工作正常,但是当我在if语句中将if ball.Transparency == 1替换为trans == 1时,会发生同样的问题。请解释一下谢谢!

while true do
ball = script.Parent
trans = 0
for i=0, 1, 0.1 do
    trans = i
    wait(0.1)
    ball.Transparency = trans
end
if ball.Transparency == 1 then
    for i = 1, 0, -0.1 do
        trans = i
        wait(0.1)
        ball.Transparency = trans
    end
end
end

1 个答案:

答案 0 :(得分:0)

浮点精度:

0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1

等于

1

我不确定将trans值分配给ball.Transparency时为什么这不是一个因素。

两件事:

1)if tostring(trans) == “1.0” then有效。

2)更好:为什么还要检查trans == 1?当然可以,因为在此之前的for循环可以保证它。

另外,请小心使用while true ...这可能是您的程序“冻结”的原因。