메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

-- 안드로이드/iOS 등등의 터치스크린 입력을 받는 기기에서는 총 3가지의 콜백 함수를 사용한다:

-- love.touchpressed / love.touchmoved / love.touchreleased

-- 다만 위 3가지 함수는 마우스 클릭으로는 발생하지 않으므로 추가적인 처리가 필요하다.


-- 아래의 코드는 터치 입력을 touches{} 테이블에 저장한다.

-- touches[id] = {x, y, 눌린 시간}

-- 새로운 테이블 키를 추가하는 식으로 여러가지 정보(맨 처음에 눌린 위치 등)를 추가적으로 처리할 수 있다. 


local touches = {}


function love.load()

    count = 0

end


function love.draw()

local k, v

for k, v in pairs(touches) do

love.graphics.print(tostring(k) .. ":" .. math.floor(v[1]) .. ":" .. math.floor(v[2]) .. ":".. math.floor(v[3]), v[1], v[2])

end

love.graphics.print(count, 0, 0)

end


function love.touchpressed( id, x, y, dx, dy, pressure )

touches[id] = {x, y, 0}

count = count + 1

end


function love.touchmoved( id, x, y, dx, dy, pressure )

if touches[id] ~= nil then

touches[id][1] = x

touches[id][2] = y

end

end


function love.touchreleased( id, x, y, dx, dy, pressure )

touches[id] = nil

count = count - 1

end


function love.mousepressed( x, y, button, istouch, presses )

if istouch == false then 

love.touchpressed( "mouse", x, y, 0, 0, 1 )

end

end


function love.mousemoved( x, y, dx, dy, istouch )

if istouch == false then

if love.mouse.isDown(1) then

love.touchmoved( "mouse", x, y, dx, dy, 1 )

end

end

end


function love.mousereleased( x, y, button, istouch, presses )

if istouch == false then

love.touchreleased( "mouse", x, y, 0, 0, 0)

end

end


function love.update(dt)

-- 눌린 시간 갱신

local k, v

for k, v in pairs(touches) do

v[3] = v[3] + dt

end

end


제스처를 인식하는 기능 같은 건 없으므로

핀치 줌, 스와이프, 더블탭, 롱프레스 등등의 이벤트를 처리하고 싶으면 직접 인식하는 코드를 짜야 합니다.

분류 :
조회 수 :
20
등록일 :
2020.11.12
00:38:39 (*.47.15.167)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=818623
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
5 MFC 더블 버퍼링 질문 [2] A.미스릴 6603   2008-06-13 2013-11-23 08:43
void CPingpongView::OnDraw(CDC* pDC) { CPingpongDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here // 현재 창 크기와 같은 DC를 만듬 CRect rect; GetClientRect(&rect); int int_client_width = (rect.ri...  
4 문D 질문 #2 [1] A.미스릴 8797   2008-06-01 2009-01-07 22:05
이거 도배하는거같은 마음이 드네여 ㅈㅅ 제가 대화창을 다뤄봤는데여 CTextDlg textdialog(50); CTextDlg * pt_textdialog(&textdialog); pt_textdialog->SetDlg(100, 100, 200, 200); pt_textdialog->SetColor(255,255,0); pt_textdialog->SetDlgBox("_d...  
3 cocos2d-x 터치와 업데이트 활성화 시키기 똥똥배 10657   2011-10-27 2013-09-13 07:29
cocos2d와 달리, 윈도우 환경에서 cocos2d-x 프로그램을 짜보면 상속을 받았음에도 update, ccTouchesBegan 등의 함수가 작동되지 않음을 알 수 있다. 터치 해결법: OnEnter와 OnExit를 추가하고, 다음 같이 적어준다. void HelloWorld::onEnter() { //단일 ...  
2 VC++ 2008 Express Edition에서 문D라이브 링크 [2] A.미스릴 13090   2008-04-17 2014-04-15 17:28
SDK도 최신버전으로 깔아주었고 도구 설정도 적절하게 했습니다 모든 셋팅이 완료되고 링크를 해보니까 아래와 같은 문장이 쭉쭉나오는군요 warning은 굉장히 많이 나오는데 실제로 컴파일을 막아버린 부분은 LINK : fatal error LNK1104: 'LIBC.lib' 파일을 ...  
1 자동화된 Lua 스크립트의 문서화 - LDoc 노루발 43242   2021-01-11 2021-01-11 11:53
다운로드 https://github.com/lunarmodules/LDoc penlight 설치가 필요 luarocks install penlight 프로젝트가 있는 폴더에서 아래의 명령행을 실행 lua /path/to/ldoc/ldoc.lua $* https://stevedonovan.github.io/ldoc/manual/doc.md.html 문서 코멘트라는걸...