Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 24/02/15, 13:22:19
Array

[xs_avatar]
juaky13 juaky13 no está en línea
Usuario muy activo
 
Fecha de registro: ene 2012
Mensajes: 530
Modelo de smartphone: Nexus 4
Tu operador: Otra
Activar / Desactivar onClick (Simon says)

Buenas a todos,

estoy haciendo el juego Simón Says (Simón dice) para que se comunique por bluetooth a esta máquina http://www.teco.kit.edu/cm/dev y tengo un problema.

Primero os explico cómo va un poco el programa:

Tengo un layout para jugar, que contiene 4 botones, uno por cada pantalla lcd de la maquina.

La lógica que sigo es:

- Primero genero numero entre 1 y 4 y lo guardo en un arraylist, luego muestro el array list completo enviándole las señales correspondientes a la máquina para que muestre la combinación. En este momento los 4 botones están desactivados con boton.setEnabled(false).

- Luego, activo los botones y capturo las pulsaciones en la pantalla del móvil. Cuando capturo una pulsación, compruebo si el elemento correspondiente del array es el mismo que el botón que he pulsado y voy mostrando solución en la máquina.

Lo que me ocurre es que no se como controlar que los botones solo actúen cuando toca jugar, no cuando estoy mostrando la combinación de la máquina. Esto lo he intentado con un while(numeroClicks < array.size()), pero se me congela el móvil.

Se que me explico como un libro en llamas, pero a ver si alguien tiene alguna idea nueva, que las mías están gastadas.

Saludos
Responder Con Cita


  #2  
Viejo 24/02/15, 14:35:26
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Simon dice... ¿pero cuál es la duda concretamente?

P.D.: Tienes un setClickable, y también puedes no hacer nada en el onClick cuando no sea turno del usuario
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!

Última edición por mocelet Día 24/02/15 a las 14:39:13.
Responder Con Cita
  #3  
Viejo 24/02/15, 15:54:23
Array

[xs_avatar]
juaky13 juaky13 no está en línea
Usuario muy activo
 
Fecha de registro: ene 2012
Mensajes: 530
Modelo de smartphone: Nexus 4
Tu operador: Otra
 Cita: Originalmente Escrito por mocelet Ver Mensaje
Simon dice... ¿pero cuál es la duda concretamente?

P.D.: Tienes un setClickable, y también puedes no hacer nada en el onClick cuando no sea turno del usuario
La duda concretamente es cómo decirle al juego, es turno de la maquina, boton desactivado. Es turno del jugador, boton activado y cuando termines pasale el control a la maquina de nuevo.

Si esto fuera java normal, sería un
while(numeroPulsaciones < tamañoArrayJuego){

espera a que pulse;
comprueba;
}

Lo que me pasa es que android va por eventos en onClick, y no se cómo meter los onClick en una función que termine cuando falles o pulses el número de veces correspondiente.

Gracias
Responder Con Cita
  #4  
Viejo 24/02/15, 16:04:27
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Ok! Pues crea una variable que se llame pulsaciones, en el onClick lo incrementas y compruebas cuántas pulsaciones lleva.

En el fondo el while que harías en consola de texto es el bucle de eventos de Android. En el onClick haces lo que necesites en cada iteración y comprobar las condiciones para hacer una cosa u otra. Si tienes que "esperar", simplemente deja que el onClick termine y devuelva el control a Android.

Ya has comprobado también que no puedes bloquear el hilo de ejecución principal (UI thread) porque es el que gestiona la interfaz de usuario y si metes una espera dejas Android colgado hasta que cierra tu app automáticamente por no devolver el control.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!

Última edición por mocelet Día 24/02/15 a las 16:12:34.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 17:31:46 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /