Hacer un motor 3D básico en Java (3 / 5 paso)

Paso 3: La clase de cámara

Ahora vamos a tomar otro desvío y configurar la clase de cámara. La clase de cámara mantiene un seguimiento de donde el jugador se encuentra en el mapa 2D y también se encarga de actualizar la posición del jugador. Para ello la clase implementará KeyListener, por lo que tendrá que importar KeyEvent KeyListener.

Muchas variables son necesarias para realizar un seguimiento de posición de la cámara y lo que puede ver. Debido a esto la primera parte de la clase tiene este aspecto:

xPos y yPos son la ubicación del jugador en el mapa 2D creado en la clase del juego. xDir y yDir son el x y y componentes de un vector que apunta en la dirección el jugador se enfrenta. xPlane y yPlane también son el x y y componentes de un vector. Siempre es perpendicular al vector dirección el vector definido por xPlane y yPlane, y puntos para el borde más alejado del campo de visión de la cámara a un lado. El borde más alejado en el otro lado es sólo el vector del plano negativo. La combinación del vector de dirección y el plano define lo que es en el campo de visión. Los valores booleanos se utilizan para realizar un seguimiento de qué claves son ser presionadas por el usuario para que el usuario puede mover la cámara. MOVE_SPEED y ROTATION_SPEED determinan qué tan rápido la cámara se mueve y gira mientras el usuario está presionando la tecla correspondiente.

El siguiente es el constructor. El constructor toma en valores que indican la clase donde se encuentra la cámara y lo que puede ver y asigna a la variable correspondiente (xPos, yPos...).

Un objeto de la cámara será necesaria en el programa final, así que vamos adelante y agregar uno. En la clase del juego con todas las otras declaraciones de variable, agregue en

y en el constructor en

Esta cámara funciona con el mapa que estoy utilizando, si está utilizando un mapa o si quiere iniciar en una ubicación diferente ajusta los valores de xPos y yPos (4 y 6 en mi ejemplo). Uso da.66 lo que siento es un buen campo de visión, pero usted puede ajustar el valor para obtener un campo visual diferente.

Ahora que la cámara de clase tiene un constructor podemos empezar añadiendo métodos para rastrear las entradas del usuario y actualización de la posición/orientación de la cámara. Dado que la clase de cámara implementa KeyboardListener debe tener todos los métodos de lo implementado. Eclipse debe automáticamente le pedirá que agregue estos métodos. El método keyTyped puede dejar en blanco, pero los otros dos métodos que se utilizarán. keyPressed establecerá los valores booleanos true cuando se presionen sus teclas correspondientes, y keyReleased cambiarán a false cuando se liberan las claves. Los métodos de este aspecto:

y

Ahora que la clase de cámara es mantener la pista de la cual se presionan las teclas podemos empezar a actualizar la posición del jugador. Para ello vamos a utilizar un método de actualización que se llama en el método run de la clase juego. Mientras estamos en ello a seguir adelante y añadir una detección de colisiones al método update pasando el mapa a él cuando se le llama en la clase del juego. El método update se ve así:

Las partes del método de control hacia adelante y hacia atrás movimiento trabajan agregando xDir y yDir xPos y yPos, respectivamente. Antes de que este movimiento suceda el programa comprueba si el movimiento será poner la cámara dentro de una pared y no seguir adelante con el movimiento si quiere. Para la rotación del vector de la dirección y el vector del plano se multiplican por la matriz de rotación, que es:

para conseguir sus nuevos valores. Con el método de actualización completado ahora podemos llamarlo desde la clase juego. En el método run de la clase juego añadir la siguiente línea de código donde se muestra aquí

Ahora que eso se hace por fin podemos pasar a la clase final y calcular la pantalla!

Artículos Relacionados

Cómo hacer un Motor

Cómo hacer un Motor

Hola a todos!!!! Hoy voy a mostrarte cómo hacer un motor. Bueno lo primero que piensa es que, es inútil porque no puede ejecutar su coche rc con este motor. Pero eso no es punto de esta compilación, de hecho es el punto principal de la construcción p
Hacer un servidor privado básico en Minecraft

Hacer un servidor privado básico en Minecraft

¿Quieres una manera fácil de jugar a Minecraft con tus amigos sin todos los trolls y gente molesta en servidores públicos? Aquí es la forma más fácil de hacer que un servidor básico protegido por contraseña! Esto se hace en un mac. Creo que es simila
Hacer un motor de jet del pulso, (escaneado de planos 1958)

Hacer un motor de jet del pulso, (escaneado de planos 1958)

hacer un motor de Jet de pulsoAlimenta una escala modelo MiG 15 de combate a 85 millas por hora. Se trata de un potente chorro y que se puede hacer por cualquier persona con acceso a instalaciones de soldadura y torno.Emil Brauner de Kladno en Czecho
Cómo hacer agua motor

Cómo hacer agua motor

Cómo hacer agua motorfácilmente se puede hacer en casavideos
Hacer un motor muy fácilmente

Hacer un motor muy fácilmente

Hoy voy a mostrar cómo hacer un motor muy fácilmente. Para esto puede que no necesite más de las cosas ordinarias. Es fácil y gran para las clases científicas y experimentos.Visita mi perfil: para ver más de este tipo de proyectos interesantes.Paso 1
Cómo hacer un MOTOR del aire de pajas | TUTORIAL || DIY ||| EXPERIMENT||

Cómo hacer un MOTOR del aire de pajas | TUTORIAL || DIY ||| EXPERIMENT||

https://www.youtube.com/watch?v=61X6Jz2fjmE&feature=youtu.bePaso 1: Hacer un MOTOR del aire de paja necesita!!!!!! En el vídeo de hoy, les mostraré una divertida idea para los niños sobre cómo hacer un motor de aire (mini motor, hélice, etc.) en gene
Cómo hacer un motor de cohete

Cómo hacer un motor de cohete

Me gustaría prefacio este Instructable con algunas breves observaciones acerca de la seguridad. Mientras que estos materiales son relativamente seguros por sí mismos, cuando se ponen juntos forman un compuesto muy peligroso. Extrema precaución debe t
Cómo hacer un motor de cohete de papel

Cómo hacer un motor de cohete de papel

Hola, hoy voy a aprender a hacer un motor de cohete de papel fuera de una pieza cuadrada de papel.video sobre cómo hacerlo y utilizarlo aquíVerlo en acción (no es mi video) aquíPaso 1: Paso 1(prefolding) Haz un pedazo cuadrado de papel y doblarla esq
Cómo hacer un motor eléctrico de masco G19

Cómo hacer un motor eléctrico de masco G19

Este Instructable le mostrará cómo hacer un motor eléctrico de algunos materiales comunes.Paso 1: materiales Para hacer este motor eléctrico simple que vas a tener que reunir los siguientes materiales.Dos clipsUna pila de dUn imán preferentemente la
Una manera Simple de hacer un Motor Masco G 33

Una manera Simple de hacer un Motor Masco G 33

Título: Una Simple manera de hacer un Motor Masco G 33Introducción...En esta actividad, usted estará creando Energía mecánica que es la energía por el movimiento y la posición de ciertos objetos. Teniendo los dos clips de papel en el más y menos en l
Cómo hacer nudos de pesca básico 3 que deberían funcionar para la mayoría de las aplicaciones

Cómo hacer nudos de pesca básico 3 que deberían funcionar para la mayoría de las aplicaciones

en este video te enseño cómo hacer nudos de pesca básico 3 que utilizo para mis nudos primarios mientras pesca.Es muy fáciles y puede ser todo que usted necesita.  
Cómo hacer un motor de mini KVG

Cómo hacer un motor de mini KVG

Hola guyz -¿Los motores son fabulosos y te knexers los amantes del motor, eh? Pero, lo que yo y algunos de ustedes por supuesto no como las cargas de trabajo y las cargas de piezas que necesita. :-P así que esto es un motor que (1) no necesita mucho
Cómo hacer un Motor Simple

Cómo hacer un Motor Simple

aquí es una divertida manera de explorar el funcionamiento interno de un motor simple.  Este es un gran proyecto para el uso en el aula o en casa.  Hacer su propio Motor, es una excelente introducción al mundo de la tecnología.Paso 1: Materiales y he
Hacer este Motor electrostático de desecho

Hacer este Motor electrostático de desecho

IntroAquí es un electrostático que motor' s fácilmente construido para un proyecto de Ciencias. El rotor fue construido por laminar una tira de papel de aluminio entre capas de cinta de embalaje plástico y rodando en un tubo. El tubo fue montado en u