Tutorial 8 - Crear juegos en android con Andengine
Buenas noches a todos y disculpen la demora. Hoy añadiremos algo más al pequeño ejemplo. Vamos a hacer que tome la moneda y que el texto que antes era para contar los clicks del boton verde pase a ser nuestro score. Manos a la obra.
Primero necesitamos cambiar el texto de Click a Puntos.
[code language="java"]
miTexto = new Text(mCamera.getWidth()*0.2f, mCamera.getHeight()*0.8f, miFuente, "Puntos:1234567890", getVertexBufferObjectManager());
miTexto.setText("Puntos: " + score);
[/code]
Luego necesitamos un sonido para cuando el sprite del muñeco azul saltarin colisione con la moneda, se escuche bien. Vean este, pero son libres de usar cualquier otro, un martillazo, un balazo, su himno nacional, etc. (Sonido).
Creemos el sonido:
[code language="java"]
try
{
miMoneda = SoundFactory.createSoundFromAsset(getEngine().getSoundManager(), this, "sonido/moneda.mp3");
miMoneda.setLooping(false);
}
catch (IOException e)
{
e.printStackTrace();
}
[/code]
La colisión que llevaremos a cabo es simple, pero efectiva. Sobreescribimos el metodo antes citado en el tutorial 5, onManagedUpdate():
[code language="java"]
spriteMoneda = new Sprite(700, 250, texturaMoneda, getVertexBufferObjectManager()){
@Override
protected void onManagedUpdate(float pSecondsElapsed) {
if(charSprite.collidesWith(this)){
sceneEjemplo.detachChild(this);
score += 10;
miTexto.setText("Puntos: " + score);
miMoneda.play();
}
super.onManagedUpdate(pSecondsElapsed);
}
};
[/code]
En pocas palabras, si charSprite(Nuestro amiguito azul) toca ESTA moneda, quitamos la moneda, sumamos 10 al score, actualizamos el texto de nuestro score y hacemos sonar la moneda. Simple no?
El código completo aquí.
Primero necesitamos cambiar el texto de Click a Puntos.
[code language="java"]
miTexto = new Text(mCamera.getWidth()*0.2f, mCamera.getHeight()*0.8f, miFuente, "Puntos:1234567890", getVertexBufferObjectManager());
miTexto.setText("Puntos: " + score);
[/code]
Luego necesitamos un sonido para cuando el sprite del muñeco azul saltarin colisione con la moneda, se escuche bien. Vean este, pero son libres de usar cualquier otro, un martillazo, un balazo, su himno nacional, etc. (Sonido).
Creemos el sonido:
[code language="java"]
try
{
miMoneda = SoundFactory.createSoundFromAsset(getEngine().getSoundManager(), this, "sonido/moneda.mp3");
miMoneda.setLooping(false);
}
catch (IOException e)
{
e.printStackTrace();
}
[/code]
La colisión que llevaremos a cabo es simple, pero efectiva. Sobreescribimos el metodo antes citado en el tutorial 5, onManagedUpdate():
[code language="java"]
spriteMoneda = new Sprite(700, 250, texturaMoneda, getVertexBufferObjectManager()){
@Override
protected void onManagedUpdate(float pSecondsElapsed) {
if(charSprite.collidesWith(this)){
sceneEjemplo.detachChild(this);
score += 10;
miTexto.setText("Puntos: " + score);
miMoneda.play();
}
super.onManagedUpdate(pSecondsElapsed);
}
};
[/code]
En pocas palabras, si charSprite(Nuestro amiguito azul) toca ESTA moneda, quitamos la moneda, sumamos 10 al score, actualizamos el texto de nuestro score y hacemos sonar la moneda. Simple no?
El código completo aquí.
Genial...me estan sirviendo mucho tus excelentes tutoriales...gracias!!!
ResponderEliminarGracias a ti. Pronto seguire :D
ResponderEliminarHola de verdad están muy bueno tus tutoriales. y me cayeron como anillo al dedo. iba a empezar ahora en enero a leer AndEngine for Android Game Development Cookbook. Pero con esto se me a echo mucho mas fácil, leer en español y después repasar lo que ellos dicen en ingles. Me es mas fácil por supuesto leer en español primero.
ResponderEliminarTe felicito. buen trabajo
Muchas gracias :D
ResponderEliminarCuando subes Mas :c?
ResponderEliminarPronto :D
ResponderEliminarMuy bueno, me estan sirviendo mucho, y lo mejor de todo es como diagramas cada lección. Muy bien explicado y con fabulosos ejemplos. Gracias por compartirlo con nosotros.
ResponderEliminarQue bueno que sea de utilidad para ti. Gracias!!
ResponderEliminarHola, logre llegar muy bien a este punto. Y ahora me encuentro con un problema, al recoger la primera moneda el juego se detiene con un error en el método detachChild, provoca un indexOutOfBoundsException. Pero si por el contrario recojo la segunda moneda primero y luego la primera, todo da bien, muy extraño!!.
ResponderEliminarExcelente haces un gran trabajo,Tengo una pregunta Cómo puedo poner obstáculos en el camino del personaje de mi juego y que al perder regrese al 1er nivel. :) Gracias
ResponderEliminar