在corona sdk中,如何在屏幕上引用/指定生成对象的所有索引?

时间:2014-01-28 20:20:24

标签: sdk indexing lua corona

嗨,我一直想知道这一段时间,这引起了很多问题,不知道如何在屏幕上同时引用/指定生成的敌人的所有索引。

当我的角色死亡时,我希望屏幕上的所有敌人在屏幕淡出时远离我死去的角色。简单地称为'enemy1'只会使一个(我认为最后产生的)按照它所说的那样做。

这是我的敌人产卵剧本:

local spawnTable2 = {}

local function spawnEnemy()
enemy1 = display.newSprite( group, sheetE, sequenceData2 )
enemy1.x=math.random(100,1300)
enemy1.y=math.random(360,760)
enemy1.gravityScale = 0
enemy1:play()
enemy1.type="coin"
enemy1.objTable = spawnTable2
enemy1.index = #enemy1.objTable + 1
enemy1.myName = "enemy" .. enemy1.index
physics.addBody( enemy1, "kinematic",{ density = 0, friction = 0, bounce = 1 })
enemy1.isFixedRotation = true
enemy1.type = "enemy1"
enemy1.timer = nil
enemy1.enterFrame = moveEnemy
Runtime:addEventListener("enterFrame",enemy1)
enemy1.objTable[enemy1.index] = enemy1
hudGroup:toFront()

return enemy1
end

1 个答案:

答案 0 :(得分:0)

要引用所有对象,您需要做两件事。

  1. 一个柜台
  2. 循环
  3. 首先制作一个柜台:

    counter = 0
    

    每次调用函数都有一个计数器:

    counter = counter + 1
    

    对于表格,您可以这样做:

    spawnTable2[counter].x=math.random(100,1300)
    

    然后,当您想要删除该对象时,您只需执行此操作:

    display.remove(spawnTable2[counter])
    

    请记住,操作该对象所做的一切都必须在该函数内部。祝你好运,希望这会有所帮助。