2017-12-28 9 views
1

색인이 없기 때문에 오류가 발생하지만 그 이유가 무엇인지 알 수 없습니다. 나는 모든 벽 타일 (#) 물리 객체에 추가하는 mapDraw 방법 에 구현 된 프로그램을 만들려고 노력하고 있어요 :map-functions.lua : 60 : nil 값의 색인 생성 시도 (love2d, physics)

function drawMap() 
    objects = {} 
    for x,column in ipairs(TileTable) do 
    for y,char in ipairs(column) do 
     love.graphics.draw(Tileset, Quads[ char ] , (x-1)*TileW, (y-1)*TileH) 
     if char == '#' then --addding the physics for collision(walls)-- 
     objects[objectIndex] = { 
      body = love.physics.newBody(world, (x-1/2) * TileW, (x-1/2) * TileH), 
      shape = love.physics.newRectangleShape(32, 32), 
      fixture = love.physics.newFixture(objects[objectIndex].body, objects[objectIndex].shape, 1) 
     } 
     end 
    end 
    end 
end 

난 단지 love2d 및 게임 제작과 함께 밖으로 시작하고 도움을 appriciate 것입니다 감사합니다 . 다음 코드에서

+1

어떤 라인이 실제로 60 번 라인입니까? – hjpotter92

+0

fixture = love.physics.newFixture (객체 [objectIndex] .body, 객체 [objectIndex] .shape, 1) –

답변

1

은 :이 할당되는 동안

objects[objectIndex] = { 
    body = love.physics.newBody(world, (x-1/2) * TileW, (x-1/2) * TileH), 
    shape = love.physics.newRectangleShape(32, 32), 
    fixture = love.physics.newFixture(objects[objectIndex].body, objects[objectIndex].shape, 1) 
} 

당신은 자기 테이블의 키를 참조한다. 이것은 루아의 잘못된 단계입니다. 나중에 fixture 키에 값을 할당하십시오 :

objects[objectIndex] = { 
    body = love.physics.newBody(world, (x-1/2) * TileW, (x-1/2) * TileH), 
    shape = love.physics.newRectangleShape(32, 32) 
} 
objects[objectIndex].fixture = love.physics.newFixture(objects[objectIndex].body, objects[objectIndex].shape, 1)