【发布时间】:2016-03-11 13:00:26
【问题描述】:
我正在开发一款小型僵尸游戏,我想随机生成僵尸并跟踪它们,因此如果它们与子弹物体碰撞,它们就会被移除,但如果它们与英雄碰撞,它们就会攻击。
我得到了删除它们或让它们在碰撞时攻击的逻辑,但是我不确定如何在屏幕上随机生成多个对象并跟踪它们。
我不是要求任何人为我编写代码,只是需要有关任务的指导。
提前致谢。
【问题讨论】:
标签: lua coronasdk game-engine
我正在开发一款小型僵尸游戏,我想随机生成僵尸并跟踪它们,因此如果它们与子弹物体碰撞,它们就会被移除,但如果它们与英雄碰撞,它们就会攻击。
我得到了删除它们或让它们在碰撞时攻击的逻辑,但是我不确定如何在屏幕上随机生成多个对象并跟踪它们。
我不是要求任何人为我编写代码,只是需要有关任务的指导。
提前致谢。
【问题讨论】:
标签: lua coronasdk game-engine
你可以做的是获取 display.viewableContentWidth 和 display.contentHeight (取决于你的 config.lua,你可以查看更多here )。
首先在 main.lua 文件上设置 math.randomSeed(os.time) REASON 是我们每次我们打开应用程序时都想要一个不同的随机数。您可以查看更多here。
Second 将 display.viewableContentWidth 和 display.contentHeight 的值存储在一个变量上,比如 x 和 y 并创建一个表格,即僵尸和一个计数器
第三创建一个每次你想生成僵尸时都会调用的函数,例如:
local x = display.contentWidth
local y = display.contentHeight
local zombies = {}
local zombieCounter = 0
showZombies = function()
--Gives a value from 1 to x
local xVal = math.random(x)
--Gives a value from 1 to y
local yVal = math.random(y)
--spawn your zombie
zombies[zombieCounter] = display.newImageRect ("yourZombie.png", 70,90)
zombies[zombieCounter].x = xVal
zombies[zombieCounter].y = yVal
--set a tag for this zombie namely "myName"
zombies[zombieCounter].myName = zombieCounter
zombieCounter = zombieCounter + 1
end
第四关于你的碰撞函数(假设你有所有的听众)
zombieCollision = function(event)
--DO WHAT YOU NEED TO DO WITH YOUR ZOMBIE
--CALL THE COLLIDED ZOMBIE
local zombieNUmber = event.other.myName
print("The number of the zombie is "..zombies[zombieNumber].myName)
end
这里跟踪僵尸的技巧是碰撞函数中的zombies[zombieNumber].myName。
【讨论】: