Godot, scripts para Godot estudios y aprendizajes,
Creacion de videojuegos.
Creacion y publicacion de videojuegos en internet.
Como hacer videojuegos.
C# unity.
Animaciones unity blender.
Personajes videojuegos graficos dibujos.
Diseño grafico.
Comic.
Animaciones gif.
Dibujo de retratos.
Realidad virtual.
Cine y realidad virtual.
EXPLICACION: Simplemente se va elevando un StaticBody3D, la idea es que cuando sale a una superficie y hace una colision se provoca un cambio de escena, este script en concreto solamente eleva un StaticBody3D, fijarse en este detalle .............
el proceso delta hace que funcione constantemente sin detenerse, -9 es el eje -y- y los 0 serian los ejes -x- y el otro 0 el -z- translate significa translada movimiento mover etc......un detallito de los ejes -9 hace que suba 9 hace que baje
y esta linea * get_process_delta_time()) hace que el movimiento sea fluido y constante en cualquier tipo de pc.
Explicacion: Estas en juego de Godot 4.2 3D, y estas en un escenario, cuando pasas por un Area3D señalada, vas a parar a otro nivel del juego, con un cambio me funciona perfectamente al igual que cambiar un arma, ahora e de continuar practicando y trabajando estas opciones que son importantisimas, tambien estoy empezando a mirar videos de youtube sobre IA persecucion de enemigos al player, todo para Godot 4.2 que es motor de videojuegos que me a enganchado, me gusta un monton¡¡¡¡
EXPLICACION: Cambie la configuracion de pantalla, para que el juego salga en 1920 por 1080, y a la vez ocupa toda la pantalla , sin este script no puedes salir del juego sin presionar Ctrl mas alt mas Supr
que es lo que se hace para cerrar un programa en concreto que no sabes por donde pararlo.....
Explicacion : algunas veces la animacion de un personaje quiero que sea repetitiva y no pare esta es la mejor forma de conseguirlo y funciona de maravilla....aunque claro esta cada caso tiene su problema y su forma de resolverse las IA son una ayuda fantastica, no te lo resuelve a la primera pero te facilita soluciones.......
Explicacion: este script tan sencillo soluciona un problema de loop repetitivo, cuando en la escena y en la animacion no esta marcado como un loop repetitivo....
En el video podeis ver un cañon que muevo por el escenario para
godot 4.2 en 3d.
Se trata de moverlo
con las teclas flechas , de girarlo con -A- y con -D- que salte al
presionar espacio. Y que apunte girando en eje X presionando teclas
-z- y tecla -x-.
Tenia un fallo que e
conseguido corregir y era que al girar el cañon a izquierda o a
derecha y presionar a la vez teclas -z- o -x- el cañon se torcia de
una forma muy extraña y terminaba arrastrandose por el suelo o
girando al reves.
Entoces y tras
muchas pruebas y consultas tambien a una IA, e dividido el cañon en
dos partes, una base que es la que lo mueve hacia adelante hacia
atrás hacia izquierda y hacia derecha, que contiene un script propio
que solo hace eso,
Y sobre la base esta
el cañon que tiene un script para el solo que no interviene en la
base principal que sirve solo para girar de izquierda a derecha y
para inclinar y apuntar arriba y abajo.
En el padre (la
base) que es un Characterbody3d esta este script:
extends
CharacterBody3D
var rotate_speed =
10.1 # Rotation speed
const SPEED = 5.0 #
Movement speed
const JUMP_VELOCITY
= 14.5 # Jump velocity
var gravity =
ProjectSettings.get_setting("physics/3d/default_gravity")
func _ready():
# Replace with
function body
pass
func
_physics_process(delta):
if not
is_on_floor():
velocity.y -=
gravity * delta # Apply gravity
if
Input.is_action_just_pressed("ui_accept") and
is_on_floor():
velocity.y =
JUMP_VELOCITY # Jump
var input_dir =
Input.get_vector("ui_left", "ui_right", "ui_up",
"ui_down") # Get input direction
var direction =
(transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction:
velocity.x =
direction.x * SPEED # Move in X direction
velocity.z =
direction.z * SPEED # Move in Z direction
else:
velocity.x =
move_toward(velocity.x, 0, SPEED) # Stop horizontal movement
velocity.z =
move_toward(velocity.z, 0, SPEED) # Stop vertical movement
move_and_slide() #
Apply movement and collisions
var
movimiento_vector = Vector3.ZERO # Initialize movement vector
if
Input.is_action_pressed("A"): # Move forward
rotate_x(0.01) #
Rotate on X axis (negative for down)
notas aclaratorias:
este script contiene tambien la instaciacion de los proyectiles.
En resumen mirar el
video y obserbar la disposicion de los elementos que componen el
cañon la camara etc, etc, y la situacion de cada script en cada
elemento, y creo que puede serle util a alguien.
para disparos de 1 en 1, sin rafaga, sin que salgan 2 disparos al presionar 1 y soltar 1, solamente presionar 1---------------if event.button_index == 1 and event.pressed :