![]() |
|
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 |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
Ayuda con Surfaceview
Estoy creando un juego y tengo una Activity Partida que utiliza otra clase GameView extendida a SurfaceView donde tengo diseñada la interificie del juego. El problema es que necesito devolver los valores del SurfaceView a la Activity Partida, que son los puntos y las vidas para cuando se pasa una pantalla o se te acaban las vidas y no se como hacerlo.
He intentado crear un Dialog en la clase GameView pero no me deja, y si lo creo en la Partida, no se como hacer para que lo llame desde la GameView. Espero que alguien me pueda ayudar, Gracias. |
|
#2
|
||||
|
||||
Tienes unas cuantas formas, te digo las palabras claves y ya buscas detalles de cada una.
a - Hazte un listener (o directamente usa las clases Observer y Observable), b - Pásale la referencia de la activity al gameview c - Usa una clase singleton para guardar el estado del juego mientras está en ejecución de modo que esté todo centralizado en una única clase |
#3
|
||||
|
||||
estoy intentando hacerlo con listeners pero no hay manera en el SurfaceView hago un:
public static abstract class PasaResultado { public abstract void getResult(int stage, int vidas, int puntos); } y luego desde otra funcion llamo para que pase los parametros y luego desde la clase Partida pueda crear un Dialog para avanzar de pantalla o salir segun toque. PasaResultado.getResult(stage, vidas, puntos); pero esto me sale subrallado en rojo y dice k ponga static en la funcion getResult, k si se lo pongo me da error. Y luego en la activity Partida la llamo de la siguiente manera PasaResultado resultado = new PasaResultado() { public void getResult(int stage, int vidas, int puntos) { this.stage = stage; this.puntos = puntos; this.vidas = vidas; } }; k luego esto ya lo tratare segun convenga, el problema es ke me sale el PasaResultado con rojo tambien, y me dice k cree la clase. Me podrias ayudar? Gracias |
#4
|
||||
|
||||
Me temo que necesitas repasar los conceptos básicos de lenguajes orientados a objetos como Java: concepto de clase, objeto, instancia, modificadores, herencia, ámbitos y visibilidad, etc.
Si no se te van a multiplicar las dudas en cuanto quieras avanzar un poco más. Los errores de compilación (las cosas rojas) son autoexplicativos, p.ej. no puedes invocar un método que no sea static sin tener una instancia de la clase... y tampoco tiene sentido instanciar una clase que es static. |
#5
|
||||
|
||||
lo siento es k ahora estoy muy perdido es la primera aplicacion k hago con el SurfaceView este me mata, esto lo e visto en un ejemplo de internet, me puedes explicar un poco como deberia hacerlo?
|
#6
|
||||
|
||||
Que sea una SurfaceView da igual, es simplemente un objeto. Por eso digo que necesitas dominar los fundamentos de objetos antes.
|
#7
|
||||
|
||||
me podrias echar una mano sobre como hacerlo?? aki tengo la creadora, no se si hace falta
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... (una serie de operaciones para tratar los parametros k me pasan setContentView(new GameView(this,nivel, sonido, stage, puntos)); } |
#8
|
||||
|
||||
consegui arreglar eso con observer y observable, lo que ahora, hago un finish() en la activity pero es como si el thread no se detuviera. en el emulador me funciona bien y se ve k se detiene y tal, pero en el movil se cuelga la aplicacion, que puede ser?
Última edición por velot Día 09/10/12 a las 22:25:27 |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 21:32:37 (GMT +2)
HTCMania: líderes desde el 2007