Avisos

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 04/05/13, 16:39:09
Array

[xs_avatar]
user19 user19 no está en línea
Usuario novato en la web
 
Fecha de registro: nov 2010
Mensajes: 29
Tu operador: Movistar

Problema con SurfaceView

Buenas, tengo un problema que me está volviendo loco y a ver si podeis echarme una mano.

Estoy desarrollando un juego android y os cuento lo que he hecho.

Tengo una clase activity, llamada Main.java de la siguiente manera:

----Main.java ---

public class Main extends Activity {

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
---> GameView game=new GameView(this);
setContentView(game);

}
.....

}

Como veis en dicha activity no uso el layout XML sino un SurfaceView (clase GameView)

----GameView.java---

public class GameView extends SurfaceView{

....

}

Y luego tengo una clase GameLoopThread , que es de tipo hilo que es el que refresca el dibujo en la pantalla.

---GameLoopThread----

public class GameLoopThread extends Thread {

...
}

La cuestión es que el juego me funciona y hace lo que tiene que hacer, pero ocurre que cuando el personaje coge una llave cuya colisión detecto en la clase GameView, quiero iniciar una nueva activity para mostrar un menú, por lo que en esta clase GameView cuando lo detecta la llave hago los siguiente:

--dentro la clase GameView donde detecto que he cogido la llave---

gameLoopThread.setRunning(false); //paro el hilo que refresca la pantalla del juego
Intent i=new Intent(getContext(),DisplayMessageActivity.class); //donde DisplayMessageActivity es la nueva actividad
getContext().startActivity(i); //la inicio


Pero cuando pruebo el juego y cojo la llave se cierra la aplicación ((

Alguien me podría decir que hago mal o alguna idea de hacerlo de otra manera??

Muchas gracias y saludos
Responder Con Cita


  #2  
Viejo 04/05/13, 16:47:46
Array

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

Cuando una aplicación se cierra es muy fácil saber por qué, solo hay que mirar la excepción que ha producido el cierre. Probablemente ni siquiera sea un problema con la surfaceview...

¿Qué excepción te lanza?
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 04/05/13, 21:26:51
Array

[xs_avatar]
user19 user19 no está en línea
Usuario novato en la web
 
Fecha de registro: nov 2010
Mensajes: 29
Tu operador: Movistar

 Cita: Originalmente Escrito por mocelet Ver Mensaje
Cuando una aplicación se cierra es muy fácil saber por qué, solo hay que mirar la excepción que ha producido el cierre. Probablemente ni siquiera sea un problema con la surfaceview...

¿Qué excepción te lanza?
Ya lo he solucionado.Al final era una tontería, se me había olvidado declarar la activity en el manifest. Aún no controlo el modo debug del eclipse y no veía la excepción. Así que gracias y siento haberte hecho perder el tiempo por una tontería de este calibre jeje

Gracias de nuevo y un saludo
Responder Con Cita
  #4  
Viejo 04/05/13, 21:36:23
Array

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

No hace falta entrar al modo debug, solo mirar la consola de texto que sale abajo. Resolver errores a ciegas cuesta mucho más, y cuando quieras meter alguna traza te saldrá en esa misma consola.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Respuesta

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



Hora actual: 17:06:32 (GMT +1)



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

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