【问题标题】:Corona SDK Random Spawn multiple objects and keep track of each object to remove on collisionCorona SDK 随机生成多个对象并跟踪每个对象以在碰撞时移除
【发布时间】:2016-03-11 13:00:26
【问题描述】:

我正在开发一款小型僵尸游戏,我想随机生成僵尸并跟踪它们,因此如果它们与子弹物体碰撞,它们就会被移除,但如果它们与英雄碰撞,它们就会攻击。

我得到了删除它们或让它们在碰撞时攻击的逻辑,但是我不确定如何在屏幕上随机生成多个对象并跟踪它们。

我不是要求任何人为我编写代码,只是需要有关任务的指导。

提前致谢。

【问题讨论】:

    标签: lua coronasdk game-engine


    【解决方案1】:

    你可以做的是获取 display.viewableContentWidthdisplay.contentHeight (取决于你的 config.lua,你可以查看更多here )。

    首先ma​​in.lua 文件上设置 ma​​th.randomSeed(os.time) REASON 是我们每次我们打开应用程序时都想要一个不同的随机数。您可以查看更多here

    Seconddisplay.viewableContentWidthdisplay.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

    【讨论】:

    • 如何为随机僵尸创建一个监听器?通常当我创建一个监听器时,我已经知道监听器是为谁服务的,在这种情况下我不会。
    • 您可以为您在此处找到的碰撞设置一个全局侦听器:docs.coronalabs.com/daily/guide/physics/collisionDetection/… 然后添加另一个标签,比如说zombie[zombieCounter].myName2 = "zombie" 以获取碰撞的参考
    猜你喜欢
    • 1970-01-01
    • 2013-08-21
    • 2013-08-04
    • 2014-05-31
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    相关资源
    最近更新 更多