Fading Ball в Roblox Lua

77
7

Я пытаюсь сделать мяч, который исчезает до 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 ball.Transparency == 1 с trans == 1 в инструкции if, возникает одна и та же проблема. Пожалуйста, объясните это спасибо!

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

спросил(а) 2018-07-22T00:41:00+03:00 1 год, 11 месяцев назад
1
Решение
54

Точность с плавающей запятой:

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... Вероятно, почему ваша программа "зависает".

ответил(а) 2018-07-22T18:30:00+03:00 1 год, 11 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема