【问题标题】:attempt to call method 'translet' (a nil value) in corona尝试在电晕中调用方法“translet”(一个零值)
【发布时间】:2014-04-05 19:27:23
【问题描述】:

对于这个函数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   
---------------------------
"

请帮我解决我做错的地方..

【问题讨论】:

  • main.lua中哪一行是123?

标签: lua coronasdk


【解决方案1】:

translate 方法可以应用于显示对象。这里你的对象也是一个物理对象。 您可以使用以下方法更改有问题的行:

myPlayer.x = myPlayer.x - 2

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

【讨论】:

    猜你喜欢
    • 2017-03-30
    • 1970-01-01
    • 2011-07-31
    • 2013-05-11
    • 2021-06-07
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多