多种类型表格的绘制

我有两个僵尸对象,一个是 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)

  -- 随机生成出生位置

  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)

    -- 随机生成出生位置

    table.insert( zombies, runner )
end

所以,zombie表将有 gruntrunner。我要如何在 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

但我要怎样在一个函数中绘制它们两个,最好是?

点赞
用户8201190
用户8201190

给不同的实体一个指向它们的精灵对象的指针:

runner = { }
runner.x = 0
runner.y = 0
runner.sprite = sprites.runner
-- 其他runner定义内容

grunt = { }
grunt.x = 0
grunt.y = 0
grunt.sprite = sprites.grunt
-- 其他grunt定义内容

而你的绘制函数变成了:

for i, z in ipairs(zombies) do
    love.graphics.draw(z.sprite, z.x, z.y, ...)
end
2017-09-15 14:16:05