Ir al contenido principal

Godot 3D, Mira automática

Te acercas, para apuntar presionas la tecla: Tabulador, para disparar presionas la tecla: Espacio.




Los modelos 3D empleados junto con las imágenes las encuentras en la liga:
https://www.mediafire.com/file/c0wi810hqpn03fd/Ilustraciones_de_Mira_autom%E1tica.zip/file

Vamos a usar el personaje:
https://nodosgodot.blogspot.com/2019/08/godot-3d-un-personaje-simple_14.html?view=sidebar




Le borramos la función de salto para liberar el uso de la tecla: Espacio, ahora su script luce así:





Bien, comenzamos por la bala:
"Area" como nodo raíz, lo nombramos: "Bala", le añadimos un script
"MeshInstance" como hijo de "Bala", le añadimos su malla y su material
"CollisionShape" como hijo de "Bala", le añadimos su forma de colisión.







Seleccionamos el primer nodo, conectamos la señal "body_entered" a la función "_fuera".




Seguimos con el arma.
"Spatial" como nodo raíz, lo nombramos: "Arma"
"MeshInstance" como hijo de "Arma"
"Position3D" como hijo de "Arma"
"Sprite3D" como hijo de "Arma", lo nombramos: "Indicador"




Seleccionamos el nodo "MeshInstace", le agregamos su malla, su material, ya que vamos a usar la función "look_at" la malla debe estar mirando de forma contraria al eje: "Z".




Clic en el nodo "Position 3D", lo ponemos enfrente del arma.




Vamos al nodo "Indicador", le añadimos su textura.




Ahora nos deslizamos hasta "GeometryInstance", dentro de "Material Override" le creamos un "Nuevo Spatial material"




Editamos el material.




Marcamos las casillas de: "Transparent", "Unshaded" y "No Depth Test".




Nos bajamos hasta "Parameters", en "Bilboard Mode" cambiamos a "Enabled".




Ocultamos el nodo "Indicador"




Añadimos un script al nodo raíz.






Enlazamos y colocamos el arma en el personaje.




Si deseas que el arma apunte a un objeto (el que sea) de forma automática solo agrégalo al grupo: "Apuntable"




¡Listo!
https://www.mediafire.com/file/lolhyoemqbmmqbv/Mira_automatica.zip/file


Nota:
Implementa la función de mira automática con precaución, pues hay un gran número de videojugdores que no la ven con agrado:
https://www.vrutal.com/noticias/19384-opinion-punteria-asistida-en-los-videojuegos

Comentarios

Entradas más populares de este blog

Godot 2D, Burro castigado

Es un juego de cartas similar al juego de UNO. Reglas: Comenzamos por repartir cuatro cartas a cada jugador. 1. El primer jugador tira una carta, la que quiera. 2. Los jugadores de la derecha deben tirar solo una carta del mismo palo. 3. Quien halla sacado la carta mas alta gana la ronda, ahora tira la carta que quiera. 4. Se repiten los pasos 2 y 3. Si no tienes una carta del mismo palo debes tomar cartas de la baraja hasta que puedas tirar una, si se acaban las cartas de la baraja cedes tu turno al de la derecha, gana el jugador que se quede sin cartas. Las ilustraciones y dibujo vectorial aquí están: http://www.mediafire.com/file/oisuslw4o2n0oac/Ilustraciones_de_Burro_castigado.zip/file Comenzamos por crear una carta, en una nueva escena colocamos el nodo: "TextureButton" como nodo raíz, le ponemos el nombre de: "Carta". En el apartado "Textures", "Normal" colocamos un "Nuevo AtlasTexture". Clic en ...

Godot 3D, Disparar

Apuntas y disparas. Comenzamos con la bala, debido a la amplia variedad de funciones que puede cumplir, mostramos como hacer una bala con los 3 nodos: "RigidBody", "Area" y "KinematicBody". Bala "RigidBody" Es la bala que estamos usando en la imagen de portada, ya que esta constantemente cayendo no alcanza a llegar al centro de la mira, ademas debe cumplir con la tarea de mover las cajas (debe tener masa y por ende gravedad). Bala "Area" Esta bala no mueve a las cajas, las atraviesa, es bueno registrando las cosas que toca. Bala "KinematicBody" Esta bala si mueve a las cajas pero llegando al suelo se desliza, lo cual puedes corregir con código extra no mostrado aquí. Aveces debido a lo rápido que es una bala ni siquiera se molestan en hacerla, simplemente: Si se presiona el gatillo y hay a que darle, a ese objetivo directamente le activan la función de bajar vida sin esperar la col...

Godot 3D, Alinear con el terreno

Gira para alinearse con el suelo. Vista ortogonal izquierda con las formas de colisión visibles: Para el personaje: "KinematicBody" como nodo raíz, lo nombramos: "Personaje" "MeshInstance" como hijo de "Personaje" "KinematicBody" como hijo de "MeshInstance" "CollisionShape" como hijo de "KinematicBody" "CollisionShape" como hijo de "Personaje" "RayCast" como hijo de "Personaje", lo nombramos: "Morro" "RayCast" como hijo de "Personaje", lo nombramos: "Cola" "RayCast" como hijo de "Personaje", lo nombramos: "Izquierda" "RayCast" como hijo de "Personaje", lo nombramos: "Derecha". En el nodo raíz, cambiamos la capa y máscara de colisión al bit 1. Clic en el nodo "MeshInstace", le añadimos su malla. Ambos nodos "Coll...