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, 9 de mayo de 2025
swords-lady-and-blood;
jueves, 1 de mayo de 2025
GDScript camara3d se traslada a unas coordenadas especificas en unos segundos y despues en otros segundos transcurridos se borra;Godot 4.4;
extends Camera3D
var tiempo_transcurrido: float = 0.0
var tiempo_para_trasladar: float = 21.0
var tiempo_para_borrar_despues_traslado: float = 5.0
var trasladada: bool = false
var coordenadas_destino: Vector3 = Vector3(-23.386, 108.385, -14.401)
func _process(delta: float) -> void:
tiempo_transcurrido += delta
if !trasladada:
if tiempo_transcurrido >= tiempo_para_trasladar:
global_transform.origin = coordenadas_destino
trasladada = true
tiempo_transcurrido = 0.0 # Reiniciamos el tiempo para la cuenta del borrado
else:
if tiempo_transcurrido >= tiempo_para_borrar_despues_traslado:
queue_free()
-----------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
Explicacion: muy util para hacer cambios de camara de puntos de vista y enfocar por varios puntos de la escena del juego, en mi juego actual la camara cae por una torre, esta asociada a un RigidBody3D cae lentamente visionando la altura de una torre mediebal, y cuando llega al suelo enfoca lo alto de la torre un primer plano de una princesa prisionera, al pasar unos segundo se borra la camara definitivamente y utiliza la del player para seguir jugando, la que esta activada con el (current).
domingo, 27 de abril de 2025
Con Godot 4.4 se borra en unos segundos la camara3d y hace tambien efecto de zoom;
extends Camera3D
@export var zoom_velocidad: float = 10.0 # Velocidad a la que cambia el zoom
@export var zoom_minimo: float = 10.0 # FOV mínimo
@export var zoom_maximo: float = 300.0 # FOV máximo
var acercando: bool = true
var tiempo_transcurrido: float = 0.0
var tiempo_para_borrar: float = 10.0
func _process(delta: float) -> void:
if acercando:
fov -= zoom_velocidad * delta
if fov <= zoom_minimo:
fov = zoom_minimo
acercando = false
else:
fov += zoom_velocidad * delta
if fov >= zoom_maximo:
fov = zoom_maximo
acercando = true
tiempo_transcurrido += delta
if tiempo_transcurrido >= tiempo_para_borrar:
queue_free()
Con Godot 4.4 emite sonido al presionar boton izquierdo del raton; en GDScript;
extends AudioStreamPlayer3D
@export var boton_accion: String = "mouse_left" # Acción del input a escuchar (por defecto: mouse_left)
@export var distancia_maxima: float = 20.0 # Distancia máxima para escuchar el sonido
func _ready():
max_distance = distancia_maxima
func _input(event):
if event is InputEventMouseButton:
if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
play()
sábado, 26 de abril de 2025
GDScript Godot 4.4 animaciones perfectas de reposo andar y ataque;
extends Node3D
var animacion_actual = "MakeHuman default skeleton|DESCANSO"
func _ready():
$AnimationPlayer.play(animacion_actual)
func _physics_process(delta):
var alguna_tecla_pulsada = false
# Comprobamos si alguna de las acciones está siendo presionada
if Input.is_action_pressed("achazo") or \
Input.is_action_pressed("mouse_left") or \
Input.is_action_pressed("mouse_right") or \
Input.is_action_pressed("RETUERCE") or \
Input.is_action_pressed("ANDAALANTECONW") or \
Input.is_action_pressed("A") or \
Input.is_action_pressed("D"):
alguna_tecla_pulsada = true
# Animación de ESPADAZO
if Input.is_action_pressed("achazo") or Input.is_action_pressed("mouse_left"):
if animacion_actual != "MakeHuman default skeleton|ESPADAZO":
$AnimationPlayer.play("MakeHuman default skeleton|ESPADAZO")
animacion_actual = "MakeHuman default skeleton|ESPADAZO"
# Animación de ATRABESAR
elif Input.is_action_pressed("mouse_right") or Input.is_action_pressed("RETUERCE"):
if animacion_actual != "MakeHuman default skeleton|ATRABESAR":
$AnimationPlayer.play("MakeHuman default skeleton|ATRABESAR")
animacion_actual = "MakeHuman default skeleton|ATRABESAR"
# Animación de ANDAR
elif Input.is_action_pressed("ANDAALANTECONW") or Input.is_action_pressed("A") or Input.is_action_pressed("D"):
if animacion_actual != "MakeHuman default skeleton|ANDAR":
$AnimationPlayer.play("MakeHuman default skeleton|ANDAR")
animacion_actual = "MakeHuman default skeleton|ANDAR"
# Si no se presiona ninguna tecla, volvemos a la animación de descanso
elif not alguna_tecla_pulsada:
if animacion_actual != "MakeHuman default skeleton|DESCANSO":
$AnimationPlayer.play("MakeHuman default skeleton|DESCANSO")
animacion_actual = "MakeHuman default skeleton|DESCANSO"
viernes, 25 de abril de 2025
GDScript , instancia borra enemigo por tiempo, cambia un $CollisionShape3D2.translate(Vector3(0, 1111, 0));
extends Area3D
# var Esferauno = preload("res://PERSONAJES MACABROS/ARAÑA/EXPLOTADA ARAÑA.tscn")
var Esferauno = preload("res://ENEMIGO MUERTO/ene_5enemigo_muerto-4-.tscn")
# var EsferaDOS = preload("res://CONSTRUCCIONES/rigid_body_3d_piedra_cae-3-.tscn")
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
# translate(Vector3(0,0,-0.001))
pass
func _on_area_entered(area: Area3D) -> void:
var parent = get_parent()
var CollisionShape3Dcubo = parent.get_node("$CollisionShape3D2")
var esfera_uno_instancia = Esferauno.instantiate()
add_child(esfera_uno_instancia)
# $"." .queue_free()
#$CollisionShape3D2.queue_free()
$CollisionShape3D2.translate(Vector3(0, 1111, 0))
pass # Replace with function body.
func _on_area_exited(area: Area3D) -> void:
# $"." .queue_free()
call_deferred("_delayed_queue_free")
pass # Replace with function body.
func _delayed_queue_free():
await get_tree().create_timer(5.9).timeout
if is_instance_valid(self):
queue_free()
------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------
Explicacion: Desarrollando nuevo juego me encuentro con dificultades al destruir enemigos e instanciar la replica del mismo con otra animacion simulando su muerte, e de consultar constantemenete a la IA de programacion y e de hacer yo mismo cambios en los GDScript, por problemas y BUGS, en este caso parece logre una solucion con esta linea y moviendo en eje "y" hacia arriba un $CollisionShape3D2.translate(Vector3(0, 1111, 0))-----un CollisionShape3D2---- que me hacia bloquear el juego, al cambiarlo por un $CollisionShape3D2.translate(Vector3(0, 1111, 0)) me quitaba el problema de bloquear el juego y la linea original esta de aqui----$CollisionShape3D2.queue_free()----me lo bloqueba, seguramente es una chapuza pero si me resuelve el problema y el juego rueda con la solucion pues fenomeno.
viernes, 18 de abril de 2025
MUMMIES, CORRIDORS AND GORE;
MUMMIES, CORRIDORS AND GORE
Estas en el interior de una pirámide egipcia, has profanado a los faraones y sus tesoros, ahora paga las consecuencias, huye¡¡ huye¡¡ huye¡¡ sal de la pirámide y ganaras el juego¡¡.
649 MB ocupa el juego en disco duro, para windows.