2013-05-20 5 views
1

나는 적의 배열을 만들고 그려려고 노력하고 있지만 배열 자체에 관한 것이 아니라면 배열 함수에 관한 잘못된 인수 인 main을 사용하면 오류가 계속 발생합니다. 루아 : 38 : 잘못된 인수 # 2 '사각형'(예상 번호, 없슴) 누구나 내가 여기에 잘못하고있는 이유를 설명해 주실 수 있습니까?다차원 배열 요소 내의 테이블 만들기 및 그리기

배열 코드 :

enemies = {} 
for i=0,7 do 
    enemies[i] = {} 
    for j=0,2 do 
     enemy = {} 
     enemy.width = 40 
     enemy.height = 20 
     enemy.x = i * (enemy.width + 60) + 100 
     enemy.y = enemy.height + 100 
     table.insert(enemies[i],enemy) 
    end 

end 
end 

그리기 기능 : 그건 당신이 비록 의도라면

--enemy 
love.graphics.setColor(0,255,255,255) 
for i,v in ipairs(enemies) do 
    love.graphics.rectangle("fill", v.x, v.y, v.width, v.height) 
end 

답변

2
enemies = {} 
for i=1,8 do 
    for j=1,3 do 
     local enemy = {} 
     enemy.width = 40 
     enemy.height = 20 
     enemy.x = i * (enemy.width + 60) + 100 
     enemy.y = enemy.height + 100 
     table.insert(enemies, enemy) 
    end 

end 

나는 모른다. 어쨌든 이유가없는 이유는 버전 ipairs에서 enemy의 세 인스턴스가 포함 된 다른 테이블을 반환한다는 것입니다. 버전이 작동하려면 다른 ipairs을 추가해야합니다 :

for i,v in ipairs(enemies) do 
    for _,e in ipairs(v) do 
     love.graphics.rectangle("fill", e.x, e.y, e.width, e.height) 
    end 
end 

기능의 임시직에 대한 local를 사용하는 것을 기억하십시오. 루아 배열은 0이 아닌 1에서 시작합니다.

+0

고맙습니다. 3 개의 행을 표시하는 몇 가지 조작으로 고맙습니다. 유일한 문제는 적의 한 열이 누락되었습니다. –