miércoles, 6 de noviembre de 2024

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;

Ejercicio de animacion manual, echo con blender y pasado a godot 4.3;

 Es muy dificil hacer animaciones de caminar manualmente, pero yo lo estoy consiguiendo, y solo con dos poses una en tijera, y grabada al principio y la otra a la inversa en tijera tambien y grabada al final del video, solo dos puntos de referencia y luego se pasa la animacion a modo ping pong en godot, el resto es sencillisimo, balancear la caveza y la espalda  los brazos,,,,,,,fantastico¡¡¡


GDScript para por tiempo cambiar de escena, tambien salir del juego al presionar escape; version Godot 4.3; varia algo del 4.2;

 extends WorldEnvironment

var tiempo_transcurrido = 0.0  # Variable para almacenar el tiempo transcurrido


# 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:

#pass




if Input.is_action_pressed("ui_cancel"):


get_tree().quit()






tiempo_transcurrido += delta




# Si han pasado 20 segundos, elimina el nodo


if tiempo_transcurrido >= 18.0:


#queue_free()



var siguiente_escena = preload("res://ESCENAS/world_environmentESCENA PRINCIPAL-5-.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.




--------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------

Nota: los script de Godot 4.3  varian un poco de la version 4.2 , varian en estas lineas 

func _ready() -> void:

pass # Replace with function body.

func _process(delta: float) -> void:

#pass


---------------nota--------------------------------------------

arriba version Godot 4.3

debajo version Godot 4.2

------------------nota----------------------------------------



func _ready() 

pass # Replace with function body.

func _process(delta):

pass

viernes, 1 de noviembre de 2024

Escala un extends Label3D en eje -x- y en eje -y- con GDScript ;

 extends Label3D


var scale_speed = 0.2

var scale_direction = 1


func _ready() -> void:

pass  # Replace with function body.


func _process(delta: float) -> void:

# Escalado en los ejes X e Y

scale.x += scale_speed * scale_direction * delta

scale.y += scale_speed * scale_direction * delta


# Cambiar la dirección de escalado cuando alcance ciertos límites

if scale_direction == 1 and scale.x >= 0.3:

scale_direction = -1

elif scale_direction == -1 and scale.x <= 0.01:

scale_direction = 1


extends Label3D escalar un Label 3d mediante GDScript;

 extends Label3D


var scale_speed = 0.8

var scale_direction = 1


func _ready() -> void:

pass  # Replace with function body.


func _process(delta: float) -> void:

# Escalado en el eje X

scale.x += scale_speed * scale_direction * delta


# Cambiar la dirección de escalado cuando alcance ciertos límites

if scale_direction == 1 and scale.x >= 0.3:

scale_direction = -1

elif scale_direction == -1 and scale.x <= 0.01:

scale_direction = 1


GDScript camara rota en diversas direcciones, muy bueno;

 extends Camera3D


var target_rotation_x = PI / 2  # Ángulo de rotación objetivo en el eje X

var target_rotation_y = PI / 4  # Á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.7  # 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


func _process(delta: float) -> void:

# 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