Continuación del Tutorial: JMonkeyEngine, Creación de nuestro primer juego.

1
17889

Continuación del Tutorial: JMonkeyEngine,
Creación
de nuestro primer juego.

AVISO: Antes de realizar este tutorial deberías de mirar
los tutoriales «JMonkeyEngine,
Creación
de nuestro primer juego»
y
«Como
implementar el Scene Monitor para analizar las escenas en
jMonkeyEngine»

En este tutorial añadiré colisiones a nuestra moto, y os
contaré qué se ha hecho para poder usar las diferentes
partes de la moto.

Añadir las colisiones es algo sencillo. Si nos hemos fijado un
poco en los métodos que contiene la clase node, que es de la
cual deriva nuestra moto, nos daremos cuenta de que exitsten
métodos para el cálculo de colisiones. Para el
tratamiento de colisiones haremos  uso de estas clases:

com.jme.intersection.BoundingCollisionResults;
com.jme.intersection.CollisionResults;

Nota: tenemos que importalas al fichero java donde tratemos las
colisiones.

Si les interesa ver información detallada de estas clases pueden
dirigirse a la página http://wiki.jmonkeyengine.org/doku.php/
que además encotrarán que bajo el paquete
com.jme.intesection hay más maneras de recoger
información de colisiones. Una vez añadido esas clases nos crearemos una variable privada de tipo CollisionResults  y de nombre results, que será donde guardemos el resultado de la colisión. Una vez hecho esto nos dirigiremos a nuestro método update de la clase juego.java y añadiremos:

results.clear();
player.calculateCollisions(fence, results);

Una vez hecho esto tenemos que instanciar la variable results, entonces
nos dirigimos al método initGame() y le añadimos el
siguiente código:

results = new BoundingCollisionResults() {
			public void processCollisions() {

				if (getNumber() > 0) {
                                    player.setVelocity( -(player.getVelocity()));
					
				} 
			}
		};

Con este código lo que hemos hecho es decir qué queremos
que haga cuando detecta colisiones. Modificando el método
processCollision() podremos cambiar el comportamiento ante una
colisión.
Y con esto ya tratamos las colisiones.

Algo que no he explicado aún es cómo puedo utilizar los
distintos nodos de la moto, bueno también es algo sencillo,
tendremos que tener el SceneMonitor para saber el nombre de los nodos
(se puede ver en el tutorial http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=SceneMonitor),
entonces sabiendo el nombre de los nodos y habiendo creado una varible
Spatial para cada nodo que queramos utilizar es tan sencillo como
dirigirnos al método donde creamos nuestro modelo, en nuestro
caso de la moto el método setModel() de la clase moto.java y
añadimos el siguiente código que es lo que asocia (en
nuestro ejemplo la rueda trasera de la moto):

backwheel = ((Node)model).getChild("backwheel");

Todo el código fuente te lo puedes descargar: Intento1.zip

Espero que les haya sido útil este tutorial, seguiremos
haciendo más tutoriales sobre esta tecnología
analizando más ejemplos algo más complicados,
todo el que quiera hacer una aportación será bien
recibida. Para comunicarme cualquier problema o sugerencia de mejora
podéis utilizar la zona de comentarios, de este modo todo el
mundo se podrá aprovechar de las respuestas.

Saludos.

1 COMENTARIO

  1. Me parecen bastantes buenos los tutoriales que estas haciendo, pero si no es mucho pedir:
    podrias hacer uno partiendo desde 0,un ejemplo sencillo sin modelos tan logrados ni movimientos tan calculados, que he tenido problemas al tratar de crear un \\\»mapa\\\» sencillo, con un modelo basico.
    Estoy muy interesado en aprender de esta tecnologia , pero se me hace un poco dificil pillarle el hilo.

    Saludos.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad