Buenas Family, otra vez ando por aqui.

Estoy terminando mi segundo Game. Y al probarlo en el movil, me encuentro con el siguiente problema.

Al parecer, no puedo pulsar dos botones a la vez y que los dos hagan su funcion.

Como se resuelve esto??

Os pongo el ejemplo, resulta que vamos conduciendo un coche, tenemos los botones de girar a derecha e izquierda y tenemos el boton disparar. Se puede decir, que es lo mas parecido a un arcade de naves, pero en vez de aviones, coches.

Pues el problema, que mientras giro por ejemplo, a la derecha, es decir, tengo el boton derecha pulsado, mientras este esta pulsado e intento disparar con el otro boton (serian dos botones pulsados a la vez) este no dispara, y viceversa.

No me esperaba para nada este problema, el caso es que cuando lo compilo para windows, aqui si que va perfect.

Espero vuestros consejos, please.

Saludos.  ;)
PCNONOGames  www.pcnono.es


Buscandop por el foro he encontrado esto, pero no entiendo bien como funciona

Por lo visto, con esto deberia de funcionar, pero no entiendo como lo hace, aqui os dejo el codigo;


Al final lo he conseguido, con vuestra ayuda, el manual traducido, un poco de tiempo y resolviendo un problema en el programa (que me funcionaba mal).

En resumen ESTE es el código principal:

for (i=0; i<2; i+=1) {
    if (device_mouse_check_button(i, mb_left))

En el for le he puesto un 2, ya que tengo dos joystick, pero coge hasta 5 dedos. Con un objeto de control, ya que antes tenía dos y ajustando la zona de actuación de CADA dedo.

Si alguien TIENE cualquier duda o le interesa profundizar en el tema, que comente.

Muchas gracias.

Saludos.
PCNONOGames  www.pcnono.es

Mejor deja el 5 dentro del "for" porque, si tocas otra parte de la pantalla sin darte cuenta, no se detectará el tercer dedo (punto) que toca la pantalla.

En el codigo que he encontrado en el foro, y que os he pegado en el comentario anterior,

Por lo que yo entiendo. Se puede utilizar varios toques en pantallas de 0-4, en el caso anterior, estos toques o dispositivos son el valor de (i) que a traves del for hasta 2, pues puede comprobar dos dispositivos o toques de pantallas, y el mb_left se trata si es el boton derecho o el izquierdo de raton.

Vale, pero esto donde iria?? en el button pressed??

Y vale comprueba si se pulsa, pero y que?? que mas hace?? con eso ya es suficiente para pulsar dos veces a la vez en la pantalla??

La verdad no entiendo bien el funcionamiento.  ???
PCNONOGames  www.pcnono.es

El mejor lugar para poner ese ciclo sería STEP, porque el usuario puede hacer la pulsación en cualquier momento, no sólo en un evento press. El código sólo revisa si se hizo un toque con el dispositivo 0 ó 1, pero no hace nada más, tú deberías agregar un switch o ifs para determinar qué pasa cuando se hace un toque con los dispositivos 0 y 1

A ver si lo he entendido.

Creo un objecto controlador. Donde en el step se compruebe mediante la funcion decive_check los dispositivos.

Y luego en al presionar el boton. Compruebo el estado del dispositivos y si es 1. Ejecutar la accion.

Esto es asi??
PCNONOGames  www.pcnono.es

Si, y además debes comprobar que el device_mouse está presionado dentro del área del botón dibujado en pantalla. Aquí hay un pequeño código: http://www.comunidadgm.org/preguntas-y-respuestas/problema-al-pulsar-dos-botones-a-la-vez-(resuelto)/msg107057/#msg107057

Ok. Muchas gracias, voy a probar a ver que tal.

La verdad es que con el juego casi acabado y me encuentro con este marron, ha sido un golpe en los bajos, jejejeje.

Espero dar con la solucion.  :-[
PCNONOGames  www.pcnono.es

Bueno, he probado el codigo del device_mouse.
En el objeto del boton. Pero mas bien lo he hecho de otra manera.

En el create del boton he puesto unas variables.

En el step del boton compruebo el device_mouse_pressed para darle valor
a la variable a true cuando se pulsa.

Y en el evento left button compruebo si la variable es true y si es asi hago
la accion.

Pero esto no funciona!!!!! Estao probando cosas y he llegado a la conclusion de que
en el step no se esta realizando el device_mouse o porque la variable no esta cogiendo el valor true

POR FAVOR AYUDA!!!!
PCNONOGames  www.pcnono.es

#10 Diciembre 20, 2014, 01:32:45 PM Ultima modificación: Diciembre 20, 2014, 01:38:31 PM por nonoroman
Cita de: Clamud en Diciembre 16, 2014, 05:35:02 PM
Si, y además debes comprobar que el device_mouse está presionado dentro del área del botón dibujado en pantalla. Aquí hay un pequeño código: http://www.comunidadgm.org/preguntas-y-respuestas/problema-al-pulsar-dos-botones-a-la-vez-(resuelto)/msg107057/#msg107057

Bueno clamud, he probado el codigo que me ha enviado, he puesto las coordenadas del objeto_boton, y en el step compruebo si estoy pulsando dicha zona, lo que no he puesto es el for, porque directamente le he asignado un dispositivo fijo, ya que solo necesito dos.

Y cuando comprueba el device, le doy valor a una variable globla. la cual al hacer pressed en el objeto_boton, compruebo si es true, y si es asi, realizo la accion.

Pero no funciona, nunca llega a darle valor a la variable, y no se porque!!!

algun consejo???
PCNONOGames  www.pcnono.es