【问题标题】:Collision Event in Corona电晕中的碰撞事件
【发布时间】:2014-02-24 15:37:54
【问题描述】:

我想知道如何让我的碰撞在 Corona 中正常工作。这是我目前所拥有的:

local function onLocalCollision( event )

if ( event.phase == "began" ) then

    print( "began: " .. event.object1.myName .. " and " .. event.object2.myName )
    test =  display.newRect(screenW - 50, halfH, 100, screenH)


elseif ( event.phase == "ended" ) then

    print( "ended: " .. event.object1.myName .. " and " .. event.object2.myName )

end

lilPig.collision = onLocalCollision
lilPig:addEventListener( "collision", lilPig )

endOfScreen.collision = onLocalCollision
endOfScreen:addEventListener( "collision", endOfScreen )

如果你能帮助我,那就太好了!提前致谢!

【问题讨论】:

  • 你有什么问题?

标签: lua coronasdk


【解决方案1】:

我认为,首先你应该为你的 COLLISION 对象添加一些属性,比如:

lilPig.myName = "lilPig"

endOfScreen.myName = "endOfScreen"

所以,我们可以直接在 Collision listener 中检查它们,如果我们之后有更多的 Collision,我们可以很容易地通过另一个条件进行检查。

我们也可以通过 RunTime listener 来实现。

--------

RuntimeListener("collision", onCollision )

--------



function onCollision( event)
        if (event.phase == "began") then
        print("COLLISION: ".. event.object1.myName .. " & ".. event.object2.myName)

            if (event.object1.myName == "lilPig" and event.object2.myName == "endOfScreen") or
                   (event.object1.myName == "endOfScreen" and event.object2.myName == "lilPig") then

                            print("Your code of block for collision event")

end

【讨论】:

  • 好吧,我照你说的做了,但是运行时监听器是一个未声明的全局值。这可能是一个菜鸟问题,抱歉。
  • 我实际上已经弄清楚了那部分,但现在我有一个不同的问题。它说 myName 是一个 nil 值,这有问题。有什么想法吗?
猜你喜欢
  • 2014-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多