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: インデックス '__userdata' が見つかりませんスタック トレースバック: main.lua:66: メイン チャンク内

このメッセージが表示される理由を誰か知っていますか?

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 に答える