0

在我使用 Gideros 和 Lua 的游戏中,我希望玩家能够从他们触摸屏幕的点到他们释放的点画一条直线。但是,当我尝试运行此代码时,我总是会收到一条错误消息。这是代码:

local function onMouseDown(event)
    event.x = startx
    event.y = starty

    event:stopPropagation()
end

local function onMouseUp(event)
    event.x = endx
    event.y = endy
    event:stopPropagation()
    local line = Shape.new()
    line:setLineStyle(5, 0x0000ff, 1)
    line:beginPath()
    line:moveTo(startx,starty)
    line:lineTo(endx,endy)
    line:endPath()

end

下一行是我的代码中的第 66 行:

scene:addEventListener(Event.MOUSE_DOWN, onMouseDown)
scene:addEventListener(Event.MOUSE_UP, onMouseUp)

这是我设置“场景”的行:

scene = gideros.class(Sprite)

这是我的错误信息:

main.lua:66: index '__userdata' 找不到堆栈回溯: main.lua:66: in main chunk

有谁知道我为什么收到这条消息?

4

1 回答 1

0

如果你这样做

scene = gideros.class(Sprite)

这意味着场景是一个类,但您只能将事件侦听器添加到类的实例,而不是类本身。

所以这样的事情应该有效:

Scene = gideros.class(Sprite)
local scene = Scene.new()
stage:addChild(scene)
于 2014-10-01T17:49:15.193 回答