2017-09-15 51 views
0

我有兩個殭屍對象,一個是Grunt,另一個是Runner多種類型的繪製表

Grunt.lua文件:

function InitGrunt() 
    grunt = {} 
    grunt.x = 0 
    grunt.y = 0 
    grunt.speed = 120 
    grunt.hitBox = (sprites.grunt:getHeight() + sprites.grunt:getWidth())/2 
    grunt.hit = false 

    gruntDefCD = 2 
    gruntCD = gruntDefCD 
    gruntMinCD = 0.4 
    gruntTimer = gruntCD 
    gruntTimerDecr = 0.8 
end 

function SpawnGrunt() 
    local side = math.random(1, 4) 

    --randomize spawn position 

    table.insert(zombies, grunt) 
end 

和我Runner.lua

function InitRunner() 
    runner = {} 
    runner.x = 0 
    runner.y = 0 
    runner.speed = 240 
    runner.hitBox = (sprites.runner:getWidth() + sprites.runner:getHeight())/2 
    runner.hit = false 

    runnerDefCD = 4 
    runnerCD = runnerDefCD 
    runnerMinCD = 2 
    runnerTimer = runnerCD 
    runnerTimerDecr = 0.95 
end 

function SpawnRunner() 
     local side = math.random(1, 4) 

     --randomize spawn position 

     table.insert(zombies, runner) 
end 

所以zombie表將有grunt S和runner秒。如何在Draw()中打印它們?

我可以得出一個有:

function DrawGrunts() 
    for i, z in ipairs(zombies) do 
    love.graphics.draw(sprites.grunt, z.x, z.y, PlayerZombieAngle(z), nil, nil, sprites.grunt:getWidth()/2, sprites.grunt:getHeight()/2) 
    end 
end 

但我怎麼在一個函數繪製他們兩個,理想?

回答

4

給不同實體的指針,其組圖對象:

runner = { } 
runner.x = 0 
runner.y = 0 
runner.sprite = sprites.runner 
-- Rest of runner definition 

grunt = { } 
grunt.x = 0 
grunt.y = 0 
grunt.sprite = sprites.grunt 
-- Rest of grunt definition 

而且你繪製函數變爲:

for i, z in ipairs(zombies) do 
    love.graphics.draw(z.sprite, z.x, z.y, ...) 
end