필자는 paralax 스크롤을 수행하는 코드를 작성하려고합니다. "조각"테이블의 모든 스프라이트는 공중으로 쏘아 져야하고 y = 200 및 x = 임의 번호로 재설정됩니다. 나중에, 나는 그들이 진정한 3D 효과를 위해 얼마나 빨리 움직이는 지에 따라 그것들을 더 작게 또는 더 크게 만들 것입니다. 내가 원하는 출력을 얻을 ipairs (스프라이트, sprite1, 스프라이트 등) 내부의 "V"를 인쇄하는 경우루아의 테이블에있는 객체에 대해 코드를 반복하는 방법은 무엇입니까?
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는 그것을 보여준다. 당신이 원하는 것과 당신이 얻는 것을 설명해야합니다. "효과가 없다"는 설명이 아닙니다. 'speed'를 변경하지 않으면 'p.y> 800'분기의 내부에서 'speed'라는 로컬 변수를 선언하므로 해당 분기의 경우 새 임의 값이 외부에서 사용되지 않습니다. 다른 방법으로 작동하지 않는다면 설명해야합니다. – Vlad
네 말이 맞아. 특정 문제가 있다는 것을 잊어 버렸습니다. p = go.get_position (v) 오류 메시지가 표시됩니다. 나는 내가 그 대상을 정확하게 참조하지 않는다고 믿는다. – josh
그게 뭐니? 나는 '조각'배열에있는 이름으로 인덱싱 된 game_objects 컬렉션이라고 가정합니다. 그러나 그것이 당신의 표본에 어디에 있습니까? 함수에 get_position()/set_position()이 있습니까? 어떻게 정의 되는가? – Vlad