玩家碰撞不起作用 - Corona SDK,Lua

我目前正在使用Corona SDK 编写游戏,并在玩家和敌人的碰撞方面遇到了问题。出于某种原因,我无法使与它们的碰撞相关的代码执行。子弹和敌人碰撞的代码确实有效。我不确定为什么。有人遇到过类似的问题吗?我已经包含了相关的代码。

生成玩家:

function spawnPlayer()
    player = display.newImage("playership2.png", 50, 50)
    physics.addBody(player, "static", {density = 1, friction = 0, bounce = 0})
    player.x = display.contentWidth * 0.5
    player.y = display.contentHeight - player.height
    player.name = "player"
    player.alive = true
    player:toFront()
end

生成敌人:

function spawnEnemy()
    Runtime:addEventListener("collision", onCollision)
    enemyNumber = enemyNumber + 1
    enemies:toFront()
    enemyGroup[enemyNumber] = display.newImage("enemyship1.png", 50, 50)
    enemyGroup[enemyNumber].alive = true
    physics.addBody (enemyGroup[enemyNumber], "dynamic", {density=0.5, friction=0.3, bounce=0})
    enemyGroup[enemyNumber].myName = "enemy"
end

碰撞函数:

function onCollision(event)
    if(event.object1.myName == "player" and event.object2.myName == "enemy") or
        (event.object1.myName == "enemy" and event.object2.myName == "player") then
            --code
    end
点赞
用户3045251
用户3045251
函数生成玩家

`` `lua
player = display.newImage(“playership2.png”,50,50)
physics.addBody(player,“static”,{density = 1,friction = 0,bounce = 0})
player.x = display.contentWidth * 0.5
player.y = display.contentHeight- player.height
player. **myName** = “player”
player.alive = true
player:toFront()
# 翻译

函数生成玩家

`` `lua
player = display.newImage(“playership2.png”,50,50)
physics.addBody(player,“static”,{density = 1,friction = 0,bounce = 0})
player.x = display.contentWidth * 0.5
player.y = display.contentHeight- player.height
player. **myName** = “player” // 把"myName"属性值设置为"player"
player.alive = true // 把"alive"属性值设置为真
player:toFront()// 将显示对像移至最前面显示
`` `
2014-05-14 18:31:26