sábado, 26 de octubre de 2024

GDScript ejemplo de codigo de animacion, al presionar "s" se para animacion al presionar "w" reanura animacion;

 extends Node3D


var animation_speed = 1.0

var animation_playing = true


func _ready():

$AnimationPlayer.play("MakeHuman default skeleton|CAMINANTE")


func _process(delta):

# Control de la velocidad de la animación

if Input.is_action_pressed("andaradelante"):

animation_speed = 2.0

animation_playing = true  # Asegurarse de que la animación esté en reproducción

$AnimationPlayer.play()

else:

animation_speed = 1.0


# Detener la animación al presionar "S"

if Input.is_action_just_pressed("detenerse"):

animation_playing = false

$AnimationPlayer.stop()


GDScript ejemplo de codigo de animacion; al presionar "s" se para la animacion;

extends Node3D

var animation_speed = 1.0
var animation_playing = true

func _ready():
$AnimationPlayer.play("MakeHuman default skeleton|CAMINANTE")

func _process(delta):
# Control de la velocidad de la animación
if Input.is_action_pressed("andaradelante"):
animation_speed = 2.0
else:
animation_speed = 1.0

# Detener o reanudar la animación
if Input.is_action_just_pressed("detenerse"):
animation_playing = not animation_playing
if animation_playing:
$AnimationPlayer.play()
$AnimationPlayer.speed = animation_speed
else:
$AnimationPlayer.stop()

miércoles, 23 de octubre de 2024

martes, 15 de octubre de 2024

GDScript para manipular textos de titulos de videojuego en Godot 4.3 3d; dos ejemplos;

 extends Label



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

if Input.is_action_just_pressed("escapedesalir"):

#rotation_degrees += 180

scale.x = 0

scale.y = 0

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

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

Este GDScript de arriba solo escala el texto asta 0 lo hace desaparecer de pantalla.

En el texto solo dice: VER INTRUCIONES "ESC" SALIR INSTRUCCIONES "ESC"

Este texto sale nada mas empezar el juego........... paso al segundo GDScript.........

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

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

extends Label



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

if Input.is_action_just_pressed("escapedesalir"):

rotation_degrees += 180




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

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

Este GDScript solamente  rota el texto 180 grados y dice:  

      MOVER NIÑO -"W"-"A"-"S"-"D" --SALTAR "ESPACIO"- "BOTON DEL RATON IZQUIERDO"-¡¡NIÑO MUERDE!!  Y GIRA IZQUIERDA CAMARA ,"BOTON DERECHO"¡¡NIÑO 

       MUERDE!!  Y  GIRA DERECHA CAMARA ,


         "RUEDA DEL RATON"  HACERCA ALEJA CAMARA.

         MOVER LA CAMARA -

        "U"-IZQUIERDA

         "I"DERECHA-

         " J"-ADELANTE-

         "K"-ATRAS-

          INCLINACION DE CAMARA-"O"-"P"

VER INTRUCIONES "ESC" SALIR INSTRUCCIONES "ESC"


Si te fijas veras que estas constantemente abisado para poder ver las instrucciones sin que te moleste el texto en pantalla, y poder jugar con toda la pantalla libre






domingo, 13 de octubre de 2024

Explicacion de la combinacion de dos GDScript, uno borra por tiempo el otro por colision;

extends Area3D

var Esferauno = preload("res://PERSONAJES/MADRE Y FINAL/camera_3d_2_enfoca_rostro_de_madre.tscn")




func _ready() -> void:

pass # Replace with function body.




func _process(delta: float) -> void:

pass



func _on_area_entered(area):


var Esferauno = Esferauno.instantiate()


add_child(Esferauno)


var parent = get_parent()




get_node("CollisionShape3D2").queue_free()


pass # Replace with function body.



func _on_area_exited(area):



pass # Replace with function body.


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

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

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

extends Camera3D


var tiempo_transcurrido = 0.0


# Llamado cuando el nodo entra en el árbol de escena por primera vez.

func _ready() -> void:

pass # Replace with function body.


# Llamado cada cuadro. 'delta' es el tiempo transcurrido desde el cuadro anterior.

func _process(delta: float) -> void:

rotate_x(0.00009)

tiempo_transcurrido += delta


if tiempo_transcurrido >= 19.0:

queue_free()  # Elimina el nodo de la escena


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

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

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

EXPLICACION: 


Queria resolver un problema con mi actual juego en Godot 4.3 y en 3d, y lo resolví con estos dos GDScript, uno es para una simple cámara, muy sencillo simplemente tiene un GDScript para que rote unos grados en su eje “x” y un temporizador para que la cámara se borre alos pocos segundos 19 segundos. Esta cámara no esta en la escena del juego, va a a ser instanciada por el otro GDScript para un Area 3d; el de la cámara,tiene su propio GDScript para lo mencionado anteriormente rotación y borrado a los 19 segundos………


Pasemos al GDScript del Área 3d, cuando el player pasa por el Área 3d este toca un CollisionShape3D2 y produce la instacicion de la cámara, osea su aparición en la escena, como solo me interesa que esa cámara aga su función una sola vez el GDScript esta escrito para que a la vez que instancia la cámara que se borrara a los 19 segundos, borre también exclusivamente el CollisionShape3D2, así cuando el player vuelve a pasar por esa Área ya no vuelve a instanciar esa cámara,porque el CollisionShape3D2 lo provocaba, asi consigo jugar con dos cámara y distintos puntos de vista.


https://perico415.itch.io/

pronto este juego a la venta....................



Y un complemento una ampliacion del GDScript del Area3d para que borre tambien un techo.....

extends Area3D

var Esferauno = preload("res://PERSONAJES/MADRE Y FINAL/camera_3d_2_enfoca_rostro_de_madre.tscn")




func _ready() -> void:

pass # Replace with function body.




func _process(delta: float) -> void:

pass



func _on_area_entered(area):


var Esferauno = Esferauno.instantiate()


add_child(Esferauno)


var parent = get_parent()




get_node("CollisionShape3D2").queue_free()

get_node("CollisionShape3D3 de HIJO TIENE TECHO").queue_free()

pass # Replace with function body.



func _on_area_exited(area):



pass # Replace with function body.