在我使用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:在主要部分
有谁知道我收到此消息的原因?
答案 0 :(得分:0)
如果你这样做
scene = gideros.class(Sprite)
这意味着scene是一个类,但是你只能将事件监听器添加到类的实例中,而不是类本身。
所以这样的事情应该有效:
Scene = gideros.class(Sprite)
local scene = Scene.new()
stage:addChild(scene)