Corona SDK 随机生成多个对象并跟踪每个对象,在碰撞时移除

我正在开发一个小型僵尸游戏,我想随机生成僵尸并跟踪它们,以便如果它们与子弹对象碰撞,它们被移除;但如果它们与主角碰撞,它们会攻击。

我知道如何在碰撞时移除它们或让它们攻击,但我不知道如何在屏幕上随机生成多个对象并跟踪它们。

我不是让任何人为我编写代码,只是需要任务指引。

提前感谢。

点赞
用户3739502
用户3739502

你可以使用 display.viewableContentWidthdisplay.contentHeight (取决于你的config.lua,你可以在这里查看更多)。

首先main.lua 文件中设置 **math.randomSeed(os.time)**,原因是每次打开应用程序时都想要不同的随机数。你可以在这里查看更多信息。

第二,将 display.viewableContentWidthdisplay.contentHeight 的值存储在一个变量(比如说x和y)中,创建一个名为“zombies”的表和一个计数器。

第三,创建一个函数,该函数将在每次生成僵尸时调用,例如:

local x = display.contentWidth
local y = display.contentHeight
local zombies = {}
local zombieCounter = 0

showZombies = function()

    --从1到x取一个值
    local xVal = math.random(x)

    --从1到y取一个值
    local yVal = math.random(y)

    --生成你的僵尸
    zombies[zombieCounter] = display.newImageRect ("yourZombie.png", 70,90)
    zombies[zombieCounter].x = xVal
    zombies[zombieCounter].y = yVal
    --为这个僵尸设置一个标签,即“myName”
    zombies[zombieCounter].myName = zombieCounter
    zombieCounter = zombieCounter + 1
end

第四,在你的碰撞函数中(假设你有所有的监听器):

zombieCollision = function(event)

    --处理你的僵尸
    --调用发生碰撞的僵尸
    local zombieNUmber = event.other.myName
    print("The number of the zombie is "..zombies[zombieNumber].myName)

end

跟踪僵尸的技巧是在你的碰撞函数中使用 zombies[zombieNumber].myName

2016-03-11 05:00:26