Ir al contenido principal

Godot 3D, Recoge y lanza

Es común en muchos juego tomar algo para después lanzarlo.




Originalmente este es nuestro personaje.






Comenzaremos por crear una "Acción" en el "Mapa de entradas", llamaremos a la acción "ui_recoger" y le asignaremos la tecla "W".




Añadimos los siguientes nodos:
  • "Positio3D", como hijo del personaje, por comodidad cambiamos el nombre a: "Recepcion".
  • "Area", como hijo de  "Position3D".
  • "CollisionShape", como hijo de "Area".
  • "AnimationPlayer", como hijo del personaje, le cambiamos el nombre a: "Animacion"




Posicionamos el nodo "Recepcion" enfrente del personaje o en el lado que quieras que empiece a recoger objeto.




Seleccionamos el nodo "Area", conectamos la señal "body_entered" a la función "caja_disponible()", después la señal "body_exited" a la función "caja_indisponible()".




Para el nodo "CollisionShape" le damos una forma de "BoxShape".




Cambiamos el tamaño del "BoxShape" de tal forma que alcance casi el suelo y al personaje.




Clic en el nodo "Animacion", le crearemos una nueva "Animación" a la que llamaremos: "Montar".




La "Animación" consiste en mover el nodo "Recepcion" a la parte superior del personaje.




Antes de continuar si es importante que dejes la "Posición de animación" en: "0", es para tener una buena sincronía con lo que le programaremos al personaje.



Conectamos la señal "animation_finished" a la función "montaje_terminado()".




Ahora la lista de nodos se vera así.




Al guión del personaje le sumamos las siguientes líneas.




El script completo se terminara viendo así.




Ahora a crear la caja, en una nueva escena creamos un "RigidBody" al que le ponemos su forma de colisión junto con una malla, es todo, no es necesario ningún script.




Ahora en la escena principal "instanciamos" una tres cajas, las colocamos y nos quedara así.




¡Listo!

Si no te sale echale un vistazo a la fuente.


Nota:
Hay otra técnica mas fácil, es así: 
Ponemos una caja en el suelo, 
ponemos otra caja sobre el personaje,
hacemos que la caja que esta sobre el personaje no se vea,
cuando el personaje se acerca a la caja del suelo para tomarla lo que hace es:
hacer invisible la caja del suelo pero hacer visible a la que tiene encima, dando la ilusión de que ha cambiado de lugar.

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 &q

Godot web, Base de datos

Consultamos y agregamos registros en una base de datos de un servidor. El servidor Comenzamos por crear una base de datos, en este caso es una base llamada: "videojuego". Ahora creamos una tabla de nombre: "record". En la tabla ingresamos 3 campos: id: como llave primaria nombre, como varchar puntucion, como int. Ingresamos varios registros de prueba a la tabla. Descargamos, ponemos en una carpeta llamada "Cx4a" dentro del servidor, editamos para ingresar nombre de usuario, clave de MySql entre otros datos. http://www.mediafire.com/file/a6c7048tmz2ksir/Cx4a.zip/file Godot Tabla Comenzamos por la tabla, en una escena colocamos un nodo: "ScrollContainer", al que le damos un tamaño de 300 x 200 Ahora como hermano de "ScrollContainer" colocamos un: "VBoxContainer", en propiedades, nos bajamos hasta "SizeFlags" en donde marcamos la casilla de "Expand". Po

Godot 3D, Girar cámara con cursor

Mueve el cursor y la cámara se moverá con el. Aunque la cámara esta colocada como hijo del personaje funciona perfectamente sin serlo. Las ordenes de la cámara: ¡Listo! http://www.mediafire.com/file/zka6ty5f0q9cbvr/Camara_y_mouse.zip/file Nota: Funciona en Godot3.xx