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.
domingo, 10 de noviembre de 2024
Ejercicios de animar con Blender y pasar a Godot4.3;
Gira la camara3d y por tiempo la borra hace las dos cosas; GDScript para godot 4.3 en 3d;
extends Camera3D
var target_rotation_x = PI / 2 # Ángulo de rotación objetivo en el eje X
var target_rotation_y = PI / 2 # Ángulo de rotación objetivo en el eje Y
var current_rotation_x = 0.0
var current_rotation_y = 0.0
var rotation_speed = 0.3 # Ajusta esta variable para cambiar la velocidad de rotación
var is_rotating_forward_x = true # Indica si la rotación en X es en sentido horario
var is_rotating_forward_y = false # Indica si la rotación en Y es en sentido horario
var tiempo_transcurrido = 0.0
func _process(delta: float) -> void:
tiempo_transcurrido += delta
# Eliminar el nodo después de 2 segundos
if tiempo_transcurrido >= 8.28:
queue_free()
# Rotación en el eje X
if is_rotating_forward_x:
if current_rotation_x < target_rotation_x:
rotate_x(delta * rotation_speed)
current_rotation_x += delta * rotation_speed
if current_rotation_x >= target_rotation_x:
current_rotation_x = target_rotation_x
is_rotating_forward_x = false
else:
if current_rotation_x > -target_rotation_x:
rotate_x(-delta * rotation_speed)
current_rotation_x -= delta * rotation_speed
if current_rotation_x <= -target_rotation_x:
current_rotation_x = -target_rotation_x
is_rotating_forward_x = true
# Rotación en el eje Y
if is_rotating_forward_y:
if current_rotation_y < target_rotation_y:
rotate_y(delta * rotation_speed)
current_rotation_y += delta * rotation_speed
if current_rotation_y >= target_rotation_y:
current_rotation_y = target_rotation_y
is_rotating_forward_y = false
else:
if current_rotation_y > -target_rotation_y:
rotate_y(-delta * rotation_speed)
current_rotation_y -= delta * rotation_speed
if current_rotation_y <= -target_rotation_y:
current_rotation_y = -target_rotation_y
is_rotating_forward_y = true
Ejemplo de compensar retroceso de un CharacterBody3D cuando dispara; en GDScript para Godot 4.3;
extends CharacterBody3D
var rotate_speed = 10.1 # Rotation speed
const SPEED = 0.2 # Movement speed
const JUMP_VELOCITY = 4.5 # Jump velocity
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
func _ready():
# Replace with function body
pass
func _physics_process(delta):
#translate(Vector3(0,0,-0.005))# PARA UNA CONSTANCIA DE MOVIMIENTO CONTINUO
translate(Vector3(0,0,-0.00))# PARA UNA CONSTANCIA DE MOVIMIENTO CONTINUO
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 input_dir = Input.get_vector("ui_left", "ui_right", "andaradelante", "detenerse") #ESTE FUNCIONABA ESTE FUNCIONABA
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("move_left"):
rotate_y(0.05) # Rotate on Z axis (positive for left)
if Input.is_action_pressed("move_right"):
rotate_y(-0.05) # Rotate on Z axis (negative for right)
#translate(Vector3(0.05,0,0))
if Input.is_action_pressed("detenerse"):
translate(Vector3(0.0,0.00,0.005))
rotate_y(-0.00)
if Input.is_action_pressed("andaradelante"):
translate(Vector3(0.0,0.00,-0.005))
rotate_y(-0.00)
move_and_slide()
# Movimiento basado en el botón izquierdo del ratón (acción "mouse_left")
if Input.is_action_pressed("mouse_left"):
# Mover hacia adelante
translate(Vector3(0.0, 0.00, -0.02))
miércoles, 6 de noviembre de 2024
Un ejemplo instancia proyectil, y apunta con rueda y con teclas -z-x-; en el mismo GDScript;
extends Area3D
var Bullet = preload("res://EL PROTAGONISTA/BALA PROYECTIL/PROYECTIL.tscn")
#var Bullet2 = preload("res://EL PROTAGONISTA/FOGONAZO PISTOLA/cpu_particles_3dfogonazo.tscn")
func _ready() -> void:
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()
#var bullet2 = Bullet2.instantiate()
add_child(bullet)
#add_child(bullet2)
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
if event is InputEventMouseButton:
if event.pressed and event.is_action("mouse_rueda_arriba"):
#if event.action == "mouse_rueda_arriba":
rotate_x(-0.02)
elif event.pressed and event.is_action("mouse_rueda_avajo"):
#elif event.action == "mouse_rueda_avajo":
rotate_x(0.02)
pass
Rotacion de un MeshInstance3D con "z" "x" y con rotacion de rueda del raton; con mapas de entrada"mouse_rueda_arriba" y "mouse_rueda_avajo";
extends MeshInstance3D
func _input(event):
# Comprobamos si es un evento de teclado
if event is InputEventKey:
if event.pressed:
if event.keycode == KEY_Z:
rotate_x(0.02)
elif event.keycode == KEY_X:
rotate_x(-0.02)
# Comprobamos si es un evento de acción de entrada
elif event is InputEventAction:
pass
#func _input(event):
if event is InputEventMouseButton:
if event.pressed and event.is_action("mouse_rueda_arriba"):
#if event.action == "mouse_rueda_arriba":
rotate_x(-0.02)
elif event.pressed and event.is_action("mouse_rueda_avajo"):
#elif event.action == "mouse_rueda_avajo":
rotate_x(0.02)
Rotacion de un MeshInstance3D presionando "z" y presionando "x";
extends MeshInstance3D
func _ready() -> void:
pass # Replace with function body.
func _input(event):
if event is InputEventKey and event.pressed:
if event.keycode == KEY_Z:
rotate_x(0.02)
pass
if event.keycode == KEY_X:
rotate_x(-0.02)
pass
lunes, 4 de noviembre de 2024
Cambiar de escena presionando"1" con un mapa de entrada con nombre"PISO1" para un GDScript de Godot 4.3;
extends WorldEnvironment
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
# Si se presiona la tecla 1 (mapa de entrada PISO1)
if Input.is_action_just_pressed("PISO1"):
# Cargar la siguiente escena
var siguiente_escena = preload("res://ESCENAS/world_environmentESCENA PRINCIPAL-6-.tscn")
# Cambiar a la escena cargada
get_tree().change_scene_to_packed(siguiente_escena)
----------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
Explicacion: Cambiar de escena presionando"1" con un mapa de entrada con nombre"PISO1" para un GDScript de Godot 4.3;