viernes 15 de octubre de 2010
Para continuar con el tutorial, Explicaremos como primer cosa que el método
Lo único que hicimos fue quitarle a la translación el aumento del radio vigía.
Ahora iremos a nuestro método Update() y agregaremos el siguiente código, antes de baseUpdate():
Obsérvese que se aumenta la posición en X respecto a el radio vigía (recuerde que el Vector radioVigia tiene las componentes 0, 0,200) y la ejecución de Coseno nos da la idea de que da vuelta como es que se quería al principio.
Pero sucede algo anormal que se puede apreciar en la primera parte del video, el giro lo hace hacia su parte de atrás, si bien esto no es tan “malo” ya que en la realidad los tanques tienen esa capacidad, nosotros queremos que sea hacia adelante el giro. Además, parece que se va en tanque haciendo una espiral, lo que sucede es que cada vez que se manda llamar Update. La posición del tanque se ira aumentando por lo que crea un efecto de espiral, que aunque se bonito XD, no es lo que queremos.
Solucionaremos esto por partes lo primero que haremos se cambiar el signo + por el signo -.
Ahora nuestro tanque dará la vuelta hacia enfrente, yupi!!. Por desgracia se sigue yendo en espiral.
Bien, pues la manera más fácil de hacer esto es crear un límite, para cuando se llegue a este deje de incrementar la posición (o aminorar, como quiera ver) Para esto agregaremos la siguiente línea de código antes de la modificación de la posición.
Tenga en cuenta que el numero debe ser negativo en caso que usted quiera que el tanque vaya hacia adelante, y positivo si quiere vaya en reversa.
Esto sucede a causa del programa de diseño en este caso blender, que tomo la parte trasera del tanque hacia enfrente, por lo que cualquier movimiento, hacia enfrente debe hacerle las modificaciones adecuadas, en este caso fue disminuir en lugar de aumentar el vector posición.
Teniendo nuestro código tal como está resultara en que al inicio el tanque se moverá poco, como si estuviera acelerando, pero al llegar al límite marcado, se quedara dando vueltas y vueltas, dispuesto a protegernos, aunque no puede todavía, eso lo veremos mas adelante.
Mira el video
En el próximo tutorial veremos cómo usar los inputs (en el primero teclado y después GamePad) para manejar el juego.
Hasta pronto
Matrix.CreateTranslation
solo crea un efecto de traslación, pero en realidad el objeto no se mueve, si depuráramos veríamos que mPos siempre está en (0,0,0). Así que para poder darle al nuestro tanque la posibilidad que recorra un tramo de camino, en el Método Update() modificaremos la posición del mismo. Pero antes de eso quitaremos el siguiente código del método de dibujo (Draw) que teníamos:efecto.World = origen[malla.ParentBone.Index] *Matrix. CreateTranslation(mPos+radioVigia)* Matrix. CreateRotationY(tanRotacion); //por esta efecto.World = origen[malla.ParentBone.Index] * Matrix. CreateTranslation(mPos ) * Matrix. CreateRotationY(tanRotacion);
Lo único que hicimos fue quitarle a la translación el aumento del radio vigía.
Ahora iremos a nuestro método Update() y agregaremos el siguiente código, antes de baseUpdate():
//Se agrega a la posicion del tanque el vector del radio de vigilancia mPos.X += (float)Math.Cos(radioVigia.X);
Obsérvese que se aumenta la posición en X respecto a el radio vigía (recuerde que el Vector radioVigia tiene las componentes 0, 0,200) y la ejecución de Coseno nos da la idea de que da vuelta como es que se quería al principio.
Pero sucede algo anormal que se puede apreciar en la primera parte del video, el giro lo hace hacia su parte de atrás, si bien esto no es tan “malo” ya que en la realidad los tanques tienen esa capacidad, nosotros queremos que sea hacia adelante el giro. Además, parece que se va en tanque haciendo una espiral, lo que sucede es que cada vez que se manda llamar Update. La posición del tanque se ira aumentando por lo que crea un efecto de espiral, que aunque se bonito XD, no es lo que queremos.
Solucionaremos esto por partes lo primero que haremos se cambiar el signo + por el signo -.
Ahora nuestro tanque dará la vuelta hacia enfrente, yupi!!. Por desgracia se sigue yendo en espiral.
Bien, pues la manera más fácil de hacer esto es crear un límite, para cuando se llegue a este deje de incrementar la posición (o aminorar, como quiera ver) Para esto agregaremos la siguiente línea de código antes de la modificación de la posición.
Tenga en cuenta que el numero debe ser negativo en caso que usted quiera que el tanque vaya hacia adelante, y positivo si quiere vaya en reversa.
Esto sucede a causa del programa de diseño en este caso blender, que tomo la parte trasera del tanque hacia enfrente, por lo que cualquier movimiento, hacia enfrente debe hacerle las modificaciones adecuadas, en este caso fue disminuir en lugar de aumentar el vector posición.
Teniendo nuestro código tal como está resultara en que al inicio el tanque se moverá poco, como si estuviera acelerando, pero al llegar al límite marcado, se quedara dando vueltas y vueltas, dispuesto a protegernos, aunque no puede todavía, eso lo veremos mas adelante.
Mira el video
En el próximo tutorial veremos cómo usar los inputs (en el primero teclado y después GamePad) para manejar el juego.
Hasta pronto
Suscribirse a:
Enviar comentarios (Atom)
Entradas populares en este Mes
-
Hola bueno ahí que seguir con el tutorial y ahora vamos a ver cómo se pueden mover objetos en 3D. Seguiremos con el proyecto del los tutoria...
-
Tutorial Dibujar un modelo 3D en XNA (Tutorial en bzkGaming ) Hola pues el inicio tan esperado de la creación de un videojuego está por...
-
Para continuar con el tutorial, Explicaremos como primer cosa que el método Matrix . CreateTranslation solo crea un efecto de traslación,...
-
Tutorial Aspectos básicos en XNA (tutoriales en : http://bzkgaming.wordpress.com/ ) Hola, antes que nada debes de saber que los tutoriale...
Entradas populares Siempre
-
Hola bueno ahí que seguir con el tutorial y ahora vamos a ver cómo se pueden mover objetos en 3D. Seguiremos con el proyecto del los tutoria...
-
Tutorial Dibujar un modelo 3D en XNA (Tutorial en bzkGaming ) Hola pues el inicio tan esperado de la creación de un videojuego está por...
-
Tutorial Aspectos básicos en XNA (tutoriales en : http://bzkgaming.wordpress.com/ ) Hola, antes que nada debes de saber que los tutoriale...
-
Tutorial Sistemas de Coordenadas y cámaras en XNA (tutoriales en : bzkgaming ) Hola bueno siguiendo con la introducción a la lógica de ...
-
Mas sobre XNA en bzk Gaming en la seccion de XNA crea tus propis videojuegos Hola, bienvenidos sean de nuevo a este tutorial de XNA en 3D...
Etiquetas
XNA
Tutorial
Videojuegos
windows phone 7
C#
Microsoft
Video
Xbox 360
3D
Programacion
C
Lanzamiento
Linux
Mexico
curso
telefono
windows
wp7
2D
APP HUB
America latina
Andorid
Archivos
Basic
Blog
C++
Camara
Conectar
Estructuras
HD
IBM
Internet
Ipod
Keyboard
Kinect
Kinect vs Move
Kinect vs Wii
LG optimus 7
Lucid
Mouse
Noticia
Python
Raton
SQL
Teclado
Utilidad
Vector
Visual
Visual Basic
XNA 4.0
XNA Frameworks
aplicaciones
celular
celulas fotoelectricas
desarrolladores
descargar
energías renovables
input
java
juegos
lenguajes
php
phpMyAdmin
precio
ruby
ubuntu


0 comentarios:
Publicar un comentario en la entrada