Как перебрать код над объектами в таблице в lua?
Я пытаюсь написать код, который выполняет прокрутку Paralax. Все спрайты в таблице "штук" должны взлететь в воздух, затем их позиция должна быть установлена на y=200 и x=randomnumber. Позже я собираюсь сделать их меньше или больше в зависимости от того, насколько быстро они движутся для получения настоящего 3D-эффекта.
Вот наивная попытка:
local speed = math.random(250,1000)
pieces = { "sprite", "sprite1", "sprite2", "sprite3", "sprite4",
"sprite5", "sprite6", "sprite7", "sprite8", "sprite9", "sprite10",
"sprite11", "sprite12", "sprite13", "sprite14", "sprite15" }
function update(self, dt)
for i, v in ipairs(pieces) do
p = go.get_position(v)
p.y = p.y + speed * dt
print(v)
if p.y > 800 then
p.y = -200
p.x = math.random(1,25) * math.random(10,35)*2
local speed = math.random(250,1000)
end
go.set_position(v)
end
end
Если я напечатаю "v" внутри ipairs, я получу желаемый результат (спрайт, спрайт1, спрайт и т. Д.), Поэтому я подумал, что то, что у меня есть выше, будет работать. Это не так. Любая помощь?
1 ответ
Вот правильный код, который я понял. Если кто-то видит это и нуждается в объяснении, дайте мне знать.
local speed = math.random(250,1000)
--pieces = { "sprite1", "sprite2", "sprite3", "sprite4", "sprite5", "sprite6", "sprite7", "sprite8", "sprite9", "sprite10", "sprite11", "sprite12", "sprite13", "sprite14", "sprite15" }
pieces = { "go1", "go2", "go3" }
function update(self, dt)
for i, v in ipairs(pieces) do
p = go.get_position(v)
p.y = p.y + speed * dt
if p.y > 800 then
p.y = math.random(200,800)/-1
p.x = math.random(1,25) * math.random(10,35) * 2
local speed = math.random(250,1000)
go.set_position(p, v)
else
go.set_position(p, v)
end
end
end