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.
viernes, 24 de mayo de 2024
JUEGO EN GODOT 4.2 BALLS BULLETS AND TITS;
miércoles, 22 de mayo de 2024
Simple script GDScript, para elevar un StaticBody3D, lentamente y continuamente; para Godot 4.2;
extends StaticBody3D
func _ready():
pass # Replace with function body.
func _process(delta):
translate(Vector3(0, -9, 0) * get_process_delta_time())
pass
------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
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 .............
func _process(delta):
translate(Vector3(0, -9, 0) * get_process_delta_time())
pass
lunes, 20 de mayo de 2024
Como cambiar de nivel conGodot4.2 3D al pasar por un Area3D;
extends Area3D
func _ready():
pass # Replace with function body.
func _process(delta):
pass
func _on_area_entered(area):
var siguiente_escena = preload("res://ESCENAPRINCIPAL-2-.tscn") # Precargar la escena
get_tree().change_scene_to_packed(siguiente_escena) # Cambiar a la escena precargada (Godot 4.2)
queue_free() # Liberar este nodo después del cambio de escena
pass # Replace with function body.
----------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
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¡¡¡¡
domingo, 19 de mayo de 2024
Como hacer un cambio de arma en Godot 4.2 3D; script en GDScript y video tutorial;
extends Area3D
var Esferauno = preload("res://ESCENAS/PLAYER NUEVO BORRABLE.tscn")
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func _on_area_entered(area):
var parent = get_parent()
var CollisionShape3Dcubo = parent.get_node("CollisionShape3D")
get_node("CollisionShape3D").queue_free()
pass # Replace with function body.
func _on_area_exited(area):
var Esferauno = Esferauno.instantiate()
add_child(Esferauno)
$"../Player".queue_free()
pass # Replace with function body.
EXPLICACION: video comentado con mi voz.
jueves, 16 de mayo de 2024
Esc para salir del juego con godot 4.2 script de GDScript;
extends WorldEnvironment
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
func _process(delta):
# Verifica si se presiona la tecla Escape
if Input.is_action_pressed("ui_cancel"):
# Salir del juego
get_tree().quit()
martes, 14 de mayo de 2024
GDScript para Godot 4.2 repaso breve de animacion repetitiva de personaje; 2 opciones, la 2ª muy muy sencilla y eficaz;
extends Node3D
var loop_enabled = true # Flag to control loop execution
# Called when the node enters the scene tree for the first time.
func _ready():
# Optionally, initialize things here that only need to happen once
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
if loop_enabled:
# Play the animation
$AnimationPlayer.play("LASBRAZEAS")
# Function to start the continuous loop
func start_loop():
loop_enabled = true
# Function to stop the continuous loop
func stop_loop():
loop_enabled = false
sábado, 11 de mayo de 2024
Un metodo de hacer un cañon y moverlo con Godot 4.2 en 3d.;
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)
elif Input.is_action_pressed("B"): # Move backward
rotate_x(-0.01) # Rotate on X axis (positive for up)
elif Input.is_action_pressed("move_left"):
rotate_y(0.01) # Rotate on Z axis (positive for left)
elif Input.is_action_pressed("move_right"):
rotate_y(-0.01) # Rotate on Z axis (negative for right)
func _unhandled_input(event):
if event is InputEventKey and event.pressed:
if event.keycode == KEY_W:
translate(Vector3(0, 100, 0) * get_process_delta_time()) # Temporary movement (consider physics)
Ahora sobre esa base como hijo en el Area3D esta el siguiente script:
extends Area3D
var Bullet = preload("res://PROYECTIL.tscn")
func _ready():
pass # Replace with function body.
func _input(event):
if event is InputEventMouseButton:
if event.button_index == 1 and event.pressed :
#event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
var bullet = Bullet.instantiate()
add_child(bullet)
func _unhandled_input(event):
if event is InputEventKey and event.pressed:
if event.keycode == KEY_W:
translate(Vector3(0, 0, 0) * get_process_delta_time()) # Temporary movement (consider physics)
#if event.keycode == KEY_
#apply_impulse(Vector3(0,40,4))#ORIGINAL
if event.keycode == KEY_Z:
rotate_x(0.02)
#pass
if event.keycode == KEY_X:
rotate_x(-0.02)
#pass
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
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.