【问题标题】:Player Collisions Not Working - Corona SDK, Lua播放器碰撞不起作用 - Corona SDK、Lua
【发布时间】:2014-06-22 10:31:13
【问题描述】:

我目前正在使用 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

【问题讨论】:

  • 这不是一个好问题。您基本上是在要求其他人调试您的代码 - 您应该提取重要/相应的部分并将它们包含在您的问题中。
  • 抱歉,我已对其进行了编辑并将相关部分放入问题中。
  • 那不起作用怎么办?在碰撞回调中,event.object1 和 event.object2 得到什么值?还是您的回调根本没有运行的问题?
  • 这就是问题所在,是的。敌人只是将玩家推来推去。所以我知道它们至少是感人的,只是我的代码根本没有执行。
  • 创建一个显示问题的最小独立示例。事实上,我们无法判断是什么问题,因为我们不知道什么代码调用了 spawn。你的意思是“子弹和敌人碰撞的代码不起作用”吗?

标签: lua coronasdk collision


【解决方案1】:
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.**myName** = "player"
player.alive = true
player:toFront()
end

【讨论】:

  • +1 我认为你是对的,应该是myName 而不是name,它确实不会导致任何语法/语义错误但会导致冲突if 失败所有时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多