在 Corona 中添加到表对象中的事件监听器

local function removeTrumps(obj)
    obj:removeSelf()

    trumps=trumps-1
 --[[local thisTrump=myTrump.id
    display.remove(myTrump[thisTrump])
    myTrump[thisTrump]=nil
    table.remove(myTrump,thisTrump)]]--

    if (timeLeft~=false) then
        if(trumps==0) then
            timer.cancel(gameTimer)
            gameOver("赢家")

        elseif(trumps<=40) then

            gameOver("还不错")
        elseif(trumps>=31) then

            gameOver("失败者")
        end

    end
end

local function startGame()
myTrump[#myTrump+1]=display.newImageRect("tp.png",25,25)
myTrump[#myTrump].x=Random(50,_W-50)
myTrump[#myTrump].y=(_H+10)
myTrump[#myTrump].id=#myTrump
physics.addBody(myTrump[#myTrump],"dynamic", {density=.1, friction=0, bounce=.9, radius=9})

 --TOUCH FUNCTION FIX IT
   function onTouch(event)

    if(timeLeft~=false) then

        if (playerReady==true) then
            if(event.phase=="ended") then
            removeTrumps(self)

        end
    end
end
end
--如果我把 onTouch 放在 removetrumps 中会怎样?如果我把它放在 #myTrump 中它只能识别触摸
myTrump[#myTrump]:addEventListener("touch", onTouch)
trumps=trumps+1

if(trumps==numTrumps) then
    gameTimer=timer.performWithDelay(1000,countDown,totalTime)
else

    playerReady=false
end
end

所以我的问题在于,我不知道如何正确地将 onTouch 事件监听器设置为表对象 #myTrump,并且我正在尝试使当您单击图像时它会消失,但它的效果不对。现在它谈到了对象(在 removeTrumps 函数中)是空值。我该怎么办?这些对象没有消失。

点赞
用户6312494
用户6312494

尝试将removeTrumps(self)更改为removeTrumps(event.target)。另外,您不需要将booleantruefalse值进行比较:

if timeLeft then -- 如果(timeLeft~= false)then“不为false即为true”
    if playerReady then -- 如果(playerReady == true)则
        -- 在此处插入一些代码
    end
end
2016-06-18 00:10:31