在Corona中尝试调用方法“translet”(一个空值)。

对于这个函数 fallingCoins(),在我的代码中我得到了后退的硬币,我需要在锚点触摸硬币时隐藏这些硬币。

function fallingCoins()
local myPlayer = display.newCircle( math.random(20,_W+20), -25, math.random(10,10)  )
    myPlayer:setStrokeColor(255, 128, 0 )
    myPlayer:setFillColor(math.random(245,255),math.random(210,223),7)
    myPlayer.myName = "myPlayer"
    physics.addBody( myPlayer, "static" )
    myPlayer.y = "150"
     local function muovi()
     myPlayer:translate(-2, 0)
     end
 Runtime:addEventListener( "enterFrame", muovi );

end
timer.performWithDelay( 3000, fallingCoins )

如果它接触到锚点,我就隐藏硬币。

function onCollision3( event )
   if(event.object1.myName == "guy" and event.object2.myName == "myPlayer") then
      event.object2:removeSelf();
   end
end
Runtime:addEventListener( "collision", onCollision3 )

如果我触摸硬币,我会得到这个错误。

"---------------------------
Corona Runtime Error
---------------------------
...as\desktop\run2\scroll\scrolling background\main.lua:123: attempt to call method 'translate' (a nil value)
stack traceback:
    [C]: in function 'translate'
    ...as\desktop\run2\scroll\scrolling background\main.lua:123: in function <...as\desktop\run2\scroll\scrolling background\main.lua:122>
    ?: in function <?:218>

Do you want to relaunch the project?
---------------------------
Yes   No
---------------------------
"

请帮助我找出错误出在哪里。

点赞
用户2186639
用户2186639

无论是哪种展示物体的方法,都可以应用于物理对象。在这里,你的对象也是物理对象。 你可以使用以下代码更改问题行:

myPlayer.x = myPlayer.x - 2

P.S:但在这种情况下,它会移动得非常快^^

2014-03-07 17:20:01