2014-09-29 5 views
0

제 게임에서 지 데오 스와 루아를 사용하여 게임에서 플레이어가 화면을 터치하는 지점에서부터 출시 시점까지 직선을 그릴 수 있기를 바랍니다. 그러나이 코드를 실행하려고하면 항상 오류 메시지가 나타납니다. 여기 코드는 다음과 같습니다루아 지 데 로스 : 터치로 문제 해결 선

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 = gideros.class(Sprite) 

: 여기

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

내가 "장면"을 설정 한 라인 내 오류 메시지 :

main.lua : 66 : 색인 '__userdata'을 (를) 찾을 수 없습니다. 스택 추적 : main.lua : 66 : 메인 청크 내

왜이 메시지가 나옵니까? 당신이

scene = gideros.class(Sprite) 

을 할 경우

+0

어디 라인 코드에서 66? –

+0

나는 이것을 지금 내 질문에 추가했다. –

답변

0

는 장면이 클래스 의미하지만, 당신은 클래스가 아닌 클래스 자체의 인스턴스에 이벤트 리스너를 추가 할 수 있습니다.

그래서이 같은 작업을해야합니다 :

Scene = gideros.class(Sprite) 
local scene = Scene.new() 
stage:addChild(scene) 
+0

이제 화면에서 손가락을 뗍니다. main.lua : 62 : 잘못된 인수 # 1이 'moveTo'(숫자가 예상 됨, 없슴) 스택 추적 : \t main.lua : 62 : in function

+0

당신은 잘못된 방향으로 지정을하고 있습니다, 그것은'startx = event.x' 등이되어야합니다. –

+0

고마워요! 잘 했어! 여기에 내 질문의 일부 2 : http://stackoverflow.com/questions/26370334/lua-gideros-line-with-touch-2 어쩌면 당신은 대답 할 수있다! –