Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: pasqualefz en Marzo 28, 2016, 04:38:03 AM

Título: como puedo crear multitouch por lo menos para 2 dedos
Publicado por: pasqualefz en Marzo 28, 2016, 04:38:03 AM
como puedo crear un multitouch ?
Título: Re:como puedo crear multitouch por lo menos para 2 dedos
Publicado por: bygdle en Marzo 28, 2016, 04:45:25 AM
Bueno, maneras hay varias. Lo primero, son las virtual key, investiga un poco sobre eso.
Lo segundo, puedes usar las funciones de detección del mouse en móviles, device_mouse_check_button, y con un ciclo for que recorra todos los dedos que desees que se puedan tocar, y si al menos uno está tocando, pues anda, haces lo que quieras.
Algo así:
[gml]
for(i = 0; i < 5; i++) {
if device_mouse_check_button(i, mb_left) {
//Haces lo que quieras
}
}
[/gml]

Lo demás puedes ingeniarlo tú haciendo algún rollo con el código xD
Título: Re:como puedo crear multitouch por lo menos para 2 dedos
Publicado por: pasqualefz en Marzo 28, 2016, 04:51:49 AM
ok gracias puedes traducirme que significa el codigo que me mandaste que hace disculpa las molestias esque soy un poco novato en esto
Título: Re:como puedo crear multitouch por lo menos para 2 dedos
Publicado por: pasqualefz en Marzo 28, 2016, 04:53:07 AM
es que quiero destruir varios objetos pero necesito minimo mis dos pulgares jaja y solo reconoce uno
Título: Re:como puedo crear multitouch por lo menos para 2 dedos
Publicado por: bygdle en Marzo 28, 2016, 05:02:19 AM
Vale, te explico el código.
Primero, la función device_mouse_check_button() tiene dos argumentos. El primero es un número identificador del dedo que queremos comprobar si está o no pulsando. Si tienes sólo un dedo en la pantalla, ese dedo es el número 0. Si tienes dos, el primero en pulsarse es el 0 y el segundo es el 1, y así sucesivamente. El segundo argumento es el tipo de pulsación que quieres comprobar, si click izquierdo, click, derecho, bla, bla bla. Así desde el dedo 0 (primer dedo) hasta el dedo 4 (último dedo)

Entonces, si queremos comprobar cualquiera de los dedos, la mejor forma es haciendo un ciclo que compruebe todos los dedos. Si lo deseas, te spameo un artículo que hace poco hice donde explico este ciclo. Aquí  (http://niuweb-blog.blogspot.com.co/2016/03/los-ciclos-en-gml.html#ciclo_for).

Entonces, el ciclo for va a aumentar una variable i, la cual aumentará de 0 a 4 y comprobará todos los dedos.
Esto para ahorrarse escribir algo como:
[gml]
if device_mouse_check_button(0, mb_left) or device_mouse_check_button(1, mb_left) or
device_mouse_check_button(2, mb_left) or device_mouse_check_button(3, mb_left) or
device_mouse_check_button(4, mb_left) {
//Haces lo que quieras
}
[/gml]
Como que mejor usamos el for xD

Esa sería la explicación :V
Título: Re:como puedo crear multitouch por lo menos para 2 dedos
Publicado por: pasqualefz en Marzo 28, 2016, 05:13:26 AM
uff exelente estoy entendiendo mucho mejor ya se para que se usa el for jeje y todo eso
pero si yo quisiera destruir con esos toques un objeto como haría estoy haciendo esto pero creo que no se puede

for(i = 0; i < 5; i++)
{
    if device_mouse_check_button(i, mb_left) {
        //Destruir bola
        instance_destroy(obj_ball_1);
    }
}
Título: Re:como puedo crear multitouch por lo menos para 2 dedos
Publicado por: bygdle en Marzo 28, 2016, 05:22:35 AM
Podrías escribir ese código en el <step> del objeto que quieres destruír, y a la vez compruebas si el dedo que tocó está tocando específicamente el objeto, porque las funciones de mouse se activan si el mouse toca en cualquier parte D:
[gml]
for(i = 0; i < 5; i++) {
if device_mouse_check_button_pressed(i, mb_left) {
if device_mouse_x(i) >= x and device_mouse_x(i) <= x + 32
and device_mouse_y(i) >= y and device_mouse_y(i) <= y + 32 {
instance_destroy();
  }
}
}
[/gml]
He cambiao la función device_mouse_check_button por device_mouse_check_button_pressed. Cada una tiene las mismas propiedades que sus parientes mouse_check_button y mouse_check_button_pressed.

Además, comprobé que el dedo que está tocando esté dentro del objeto, imaginando que el sprite del objeto es de 32*32. Esto lo hago con las funciones device_mouse_x y device_mouse_y. Estas dos tienen un solo argumento, que es el dedo al que le queremos buscar la posición.
Título: Re:como puedo crear multitouch por lo menos para 2 dedos
Publicado por: pasqualefz en Marzo 28, 2016, 05:41:26 AM
muchas gracias no das clase de gml privadas? nose donde podría a prender de verdad por completo esto no hay mucha info así solo lo básico y no se como usar las funciones que tiene el gms soy de venezuela a que no exite nada ni un pinche curso de programación jaja me salvo porque estudio ingenieria en sistema pero aun no voy tan avanzado
Título: Re:como puedo crear multitouch por lo menos para 2 dedos
Publicado por: bygdle en Marzo 28, 2016, 05:48:50 AM
Bueno, yo no soy mucho de páginas así que no te puedo recomendar ninguna. Lo siento  :-[ :'(
Pero por ahí en la sección de Artículos rondan varios tutoriales que, mezclándolos, te pueden enseñar la (redundancia en 3, 2, 1) función de las funciones (xDDD valga la redundancia xDDD) más importantes y el funcionamiento del lenguaje D: