2014-01-19 3 views
2

Love 2d 엔진을 사용하여 간단한 게임을 작성하려고합니다. 그것은 lua을 스크립팅 언어로 사용합니다. 배열에 문제가있어 해결책을 찾을 수 없습니다.루아에서 배열의 색인 주소를 지정

for i = 1, 10 do 
    objects.asteroids = {} 
    objects.asteroids[i] = {} 
    objects.asteroids[i].body = love.physics.newBody(world, 650/2, 650/2, "dynamic") 
    objects.asteroids[i].size = 3 
    objects.asteroids[i].angle = math.random(6) 
end 

나는 다음과 같은 작업을 수행하려고 동일한 기능에 : 여기 내 문제입니다

for i = 1, 10 do 
    objects.asteroids[i].size = 2 
end 

을 그리고 내 게임을 실행하려고 할 때이 오류가 발생합니다 :

을 오류 main.lua : 48 : 없음 값 색인화 시도

Wher e 줄 48은 다음 코드 행을 나타냅니다.

objects.asteroids[i].size = 2 

답변

2

각 루프 반복에서 objects.asteroids을 덮어 쓰고 있습니다. object.asteroids 새로운 {} 테이블로 설정하고 이전 한 후 액세스 할 수 없게되기 때문에이 의미

for i = 1, 10 do 
    objects.asteroids = {} -- <== Here. 
    objects.asteroids[i] = {} 

, 당신은 끝을 추가하려는 소행성 개체가 루프의 다음 단계에서 삭제되는 것입니다 .

당신은 너무처럼 재 배열 할 수 있습니다 :

objects.asteroids = {} 

for i = 1, 10 do 
    objects.asteroids[i] = {} 
    -- ... 
+0

덕분에, 지금은 :) 너무 사소한 것 같다. –