Não sei em que idioma você está codificando o jogo ... Normalmente, [ javascript ], [ jquery ] e [ Webkit ] suportam eventos de toque. Mas, se isso não ajudar, você pode tentar esse script e alterá-lo conforme sua conveniência:
Cite do criador do script: [ link ]
Eu tenho um MID (Mobile Internet Device) chamado Viliv S5. Tem resolução de 1024 x 768 para tela de 4,8 polegadas. Isso significa que os ícones são pequenos para clicar com os dedos. Então eu desenvolvi um script para converter touchscreen (coordenada absoluta) para touchpad (coordenada relativa).
Este script conecta o mouse, ocultando cursores reais e mostrando cursores falsos. Quando o dedo é solto, o ponteiro do mouse é movido para a posição desejada e revela o cursor.
Uso:
Descompacte o arquivo zip na pasta relevante.
Abra o Touchpad.ini e configure o cursor "speed" (0 ~ 1).
Arraste a tela e o cursor se move.
Toque em qualquer lugar na tela e clique em é enviado.
Duplo toque é duplo clique.
"Ctrl + u" pausa / reinicia o script.
Clique no ícone da bandeja e saia do script.
Façam:
Implemente arrastando.
Às vezes, os cursores pulam para a posição do meu dedo.
Às vezes, os cursores estão ocultos.
Baixe o arquivo zip aqui:
http://cafe.naver.com/flowpad/34
(atualizei o link acima).
ROTEIRO:
; AutoHotkey Version: 1.x
; Language: English
; Platform: Win9x/NT
; Author: Seung-Young Noh <noh@socoop.net>
#SingleInstance force
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
Menu, Tray, NoStandard
Menu, Tray, Tip, Touchpad V0.7
Menu, Tray, Icon, 1.ico, , 1
Menu, Tray, add, Exit, MenuQuit
Menu, Tray, Default, Exit
Menu, Tray, Click, 1
#Persistent
CoordMode, Mouse, Screen
IniRead, Cursor_speed, Touchpad.ini, main, Cursor_speed
if not Cursor_speed
Cursor_speed := 0.7
SystemCursor("I")
SetTimer, WatchCursor, 50
return
MenuQuit:
ExitApp
return
LWin & u::
Suspend
SetTimer, WatchCursor, Off
SetTimer, MovePointer, Off
SystemCursor(1)
if (A_IsSuspended = 1) {
Menu, Tray, Icon, 2.ico
} else {
Menu, Tray, Icon, 1.ico
}
return
WatchCursor:
MouseGetPos, x, y
GetKeyState, state, LButton
FromX := FromX1
FromY := FromY1
FromX1 := x
FromY1 := y
return
StartWatchCursor:
SetTimer, WatchCursor, On
return
LButton::
SystemCursor(0)
SetTimer, WatchCursor, Off
ToX := FromX
ToY := FromY
SplashImage, C:\Windows\Cursors\arrow_r.cur, x%ToX% y%ToY% B
MouseGetPos, thisX, thisY
SetTimer, MovePointer, 100
return
LButton Up::
SetTimer, MovePointer, Off
MouseMove, %ToX%, %ToY%, 0
SplashImage, Off
if ((A_TimeSincePriorHotkey < 100) and (abs((ToX - FromY) * (ToY - FromY)) < 200)) {
Click
}
FromX := ToX
FromY := ToY
SystemCursor(1)
SetTimer, StartWatchCursor, -1000
return
MovePointer:
MouseGetPos, x, y
ToX := ToX + Round(Cursor_speed * (x - thisX))
ToY := ToY + Round(Cursor_speed * (y - thisY))
if (ToX <= 0) {
ToX = 0
} else if (ToX >= A_ScreenWidth) {
ToX := A_ScreenWidth
}
if (ToY <= 0) {
ToY = 0
} else if (ToY >= A_ScreenHeight) {
ToY := A_ScreenHeight
}
if (((x - thisX) != 0) or ((y - thisY) !=0)) {
SplashImage, C:\Windows\Cursors\arrow_r.cur, x%ToX% y%ToY% B
}
thisX := x
thisY := y
return
;; The script below is another's. I can't remember whose it is.
SystemCursor(OnOff=1) ; INIT = "I","Init"; OFF = 0,"Off"; TOGGLE = -1,"T","Toggle"; ON = others
{
static AndMask, XorMask, $, h_cursor
,c0,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13 ; system cursors
, b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13 ; blank cursors
, h1,h2,h3,h4,h5,h6,h7,h8,h9,h10,h11,h12,h13 ; handles of default cursors
if (OnOff = "Init" or OnOff = "I" or $ = "") ; init when requested or at first call
{
$ = h ; active default cursors
VarSetCapacity( h_cursor,4444, 1 )
VarSetCapacity( AndMask, 32*4, 0xFF )
VarSetCapacity( XorMask, 32*4, 0 )
system_cursors = 32512,32513,32514,32515,32516,32642,32643,32644,32645,32646,32648,32649,32650
StringSplit c, system_cursors, `,
Loop %c0%
{
h_cursor := DllCall( "LoadCursor", "uint",0, "uint",c%A_Index% )
h%A_Index% := DllCall( "CopyImage", "uint",h_cursor, "uint",2, "int",0, "int",0, "uint",0 )
b%A_Index% := DllCall("CreateCursor","uint",0, "int",0, "int",0
, "int",32, "int",32, "uint",&AndMask, "uint",&XorMask )
}
}
if (OnOff = 0 or OnOff = "Off" or $ = "h" and (OnOff < 0 or OnOff = "Toggle" or OnOff = "T"))
$ = b ; use blank cursors
else
$ = h ; use the saved cursors
Loop %c0%
{
h_cursor := DllCall( "CopyImage", "uint",%$%%A_Index%, "uint",2, "int",0, "int",0, "uint",0 )
DllCall( "SetSystemCursor", "uint",h_cursor, "uint",c%A_Index% )
}
}
Espero que isso ajude ... Eu não testei o script.