반응형
오늘은 Thanks Giving day라서 휴일입니다.
사무실에 안 가고 집에서 글을 쓰게 됐네요.
근데 여유있게 글을 쓸 상황은 아니군요.
점심 초대를 받아서 좀 있다 나가야 하거든요.
오늘은 간단하면서도 아주 자주 쓰이는 테크닉을 정리하겠습니다.
앱을 만들 때 특히 게임 같은 앱을 만들 때 드래깅 기술을 많이 사용하게 됩니다.
가장 기본적으로 알아 둬야 할것은 아래와 같습니다.
touch 이벤트 리스너를 사용하기
began에서 현재 위치 저장하기
moved에서 현재 위치 바꿔주기
이 정도만 확실하게 알아 두시면 됩니다.
스크린에 사각형을 그리고 저 사각형을 드래그 하는 앱입니다.
아래 소스코드 참조하세요.
-- create object
local myObject = display.newRect( 0, 0, 100, 100 )
myObject:setFillColor( 255 )
-- touch listener function
function myObject:touch( event )
if event.phase == "began" then
self.markX = self.x -- store x location of object
self.markY = self.y -- store y location of object
elseif event.phase == "moved" then
local x = (event.x - event.xStart) + self.markX
local y = (event.y - event.yStart) + self.markY
self.x, self.y = x, y -- move object based on calculations above
end
return true
end
-- make 'myObject' listen for touch events
myObject:addEventListener( "touch", myObject )
우선 흰색 사각형을 그리구요.
그 다음 touch 이벤트 리스너에서 호출할 함수를 만듭니다.
맨 아래 부터 부시면 이 myObject라는 객체에 touch 이벤트 리스너를 달았다는 것을 잘 보세요.
이제 myObject라는 함수를 보겠습니다.
began 일 때 해당 객체(myObject)의 위치를 정합니다.
moved일 때 began일 때의 위치 event.xStart 를 현재 위치에서 빼고 그러니까 이동 거리를 구하고 객체의 위치 self.markX를 더해 줍니다.
그리고 그 위치값을 myObject 객체의 위치값으로 대입합니다.
그러면 이동하게 됩니다.
아주 간단합니다. 하지만 반드시 알고 있어야 하는 겁니다.
반응형
'Corona SDK > Corona SDK TIPs' 카테고리의 다른 글
iOS - armv6 (-19033) error (0) | 2012.01.25 |
---|---|
앱 화면 Screen Capture하기 (0) | 2011.12.29 |
Modular Classes in Corona - 모듈과 클래스 이해하기 - (0) | 2011.12.08 |
코로나로 책장 넘기는 효과 주기 (0) | 2011.12.06 |
내 코드 모듈화 하기 (modularize) (0) | 2011.12.01 |
화면 전환 클래스(director.lua) 사용하기 와 랜덤 화면 전환 (2) | 2011.11.24 |
Sprite sheet로 애니메이션 표현하기 (주사위 놀이) (2) | 2011.11.23 |
ui 버튼이용 하기 ui.newButton (0) | 2011.11.18 |
화면에 시간 표시하기 (스탑와치) (0) | 2011.11.17 |
Screen Transitioning. (화면 전환,이동) (0) | 2011.11.16 |