lunes, 5 de agosto de 2024

CollisionShape3D script gdscript para escalar aleatoria y constantemente;

 extends CollisionShape3D


var escala_minima = 0.25  # Tamaño mínimo de escala

var escala_maxima = 1.0  # Tamaño máximo de escala

var tiempo_cambio_escala = 1.0  # Tiempo en segundos entre cambios de escala

var tiempo_transcurrido = 0.0  # Tiempo transcurrido desde el último cambio


func _process(delta):

tiempo_transcurrido += delta


if tiempo_transcurrido >= tiempo_cambio_escala:

tiempo_transcurrido = 0.0


var nueva_escala = Vector3(randf_range(escala_minima, escala_maxima),

  randf_range(escala_minima, escala_maxima),

  randf_range(escala_minima, escala_maxima))


scale = nueva_escala

domingo, 4 de agosto de 2024

GDScript para Godot 4.2, muy simple activa una animacion constante y ademas borra el nodo transcurridos unos 16 segundos;

 extends Node3D


var tiempo_transcurrido = 0.0


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

func _ready():

$AnimationPlayer.play("GESTICULACION")


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

func _process(delta):

tiempo_transcurrido += delta


if tiempo_transcurrido >= 16.0:

queue_free()  # Elimina el nodo de la escena

domingo, 28 de julio de 2024

Borra una puerta, la quema, borra elemetos de una puerta y sus StaticBody3D con su CollisionShape3D; en GDScript para Godot 4.2;

 extends Area3D



var Esferauno = preload("res://ARRANCA PERSONAJE ANDANDO Y MOVIENDOSE/BORRALO.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()


#$"../../SILLA OFICINA9 ARDERAAAAAAAAAAAAAAAAAAAAAAAAAA3".queue_free()

$"../CSGTorus3D2 AQUEMAR2".queue_free()

$"../CSGTorus3D2 AQUEMAR3".queue_free()

$"../CSGTorus3D2 AQUEMAR4".queue_free()

$"../CSGTorus3D2 AQUEMAR5".queue_free()

$"../CSGTorus3D2 AQUEMAR6".queue_free()

$"../StaticBody3D".queue_free()

pass # Replace with function body.



func _on_area_exited(area):


var Esferauno = Esferauno.instantiate()


add_child(Esferauno)


pass # Replace with function body.





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

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

EXPLICACION: Un personaje a de atravesar una puerta, el script instancia un fuego ya que el personaje representa que la quema con un lanzallamas, a la vez borra elementos de dicha puerta sus StaticBody3D con su CollisionShape3D, ese fuego se apagara en unos segundos pero eso lo hace desde su propio script, ya que ese fuego es de una escena diferente que fue instanciada con este script.  "res://ARRANCA PERSONAJE ANDANDO Y MOVIENDOSE/BORRALO.tscn" pongo mas abajo el script de borrar por tiempo la escena BORRALO.tscn sus graficos representan fuego y esta asociado un sonido de quemar a estos graficos para dar mas realismo y ambiente


extends RigidBody3D


var tiempo_transcurrido = 0.0 # Variable para almacenar el tiempo transcurrido


func _process(delta):


tiempo_transcurrido += delta


if tiempo_transcurrido >= 5.0:


queue_free() # Elimina el nodo de la escena



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

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

extends CPUParticles3D


var tiempo_transcurrido = 0.0 # Variable para almacenar el tiempo transcurrido


func _process(delta):


tiempo_transcurrido += delta


if tiempo_transcurrido >= 5.0:


queue_free() # Elimina el nodo de la escena




Script en GDScript para godot4.2, combinacion de mouse y teclado para ejecutar diversas animaciones de un personaje;

 extends Node3D



var animacion_actual = "OTROBRAZOMUEVE"



func _ready():

$AnimationPlayer2.play("UNAMASDEPRUEBASDEMASDEUNA")

pass # Replace with function body.




func _input(event):


if event is InputEventMouseButton:




if event.button_index == 1 and event.pressed :



$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




func _physics_process(delta):


# Agacharse



if Input.is_action_pressed("ui_down"):


if animacion_actual != "OTROBRAZOMUEVE":


#$AnimationPlayer.play("LEBANTAPIE")

$AnimationPlayer.play("OTROBRAZOMUEVE")


animacion_actual = "OTROBRAZOMUEVE"




elif Input.is_action_pressed("agacharse"):


if animacion_actual != "LEBANTABRAZO":


$AnimationPlayer.play("LEBANTABRAZO")


animacion_actual = "LEBANTABRAZO"




elif Input.is_action_pressed("ui_accept"):


if animacion_actual != "GIRATRONCO":


$AnimationPlayer.play("GIRATRONCO")


animacion_actual = "GIRATRONCO"





elif Input.is_action_pressed("detenerse"):


if animacion_actual != "PASOJASON":


$AnimationPlayer.play("PASOJASON")


animacion_actual = "PASOJASON"





#elif Input.is_action_just_pressed("DISPARAR"):

#elif Input.is_action_released("DISPARAR"):

elif Input.is_action_pressed("DISPARAR"):


if animacion_actual != "ARMAENMANO":


$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




elif Input.is_action_pressed("DISPARAR2"):


if animacion_actual != "ARMAENMANO":


$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




# Moverse hacia la derecha


#elif Input.is_action_just_pressed("ui_right"):

#elif Input.is_action_just_pressed("andaradelante"):# este funciona

#elif Input.is_action_just_pressed("ui_right"):


func _unhandled_input(event):# pruebas pero funciona

if event is InputEventKey and event.pressed:# pruebas pero funciona

#if event.keycode == KEY_W or event.keycode == KEY_A or event.keycode == KEY_O or event.keycode == KEY_D:

if event.keycode == KEY_W:# pruebas pero funciona




#if animacion_actual != "ANDADEMIXAMO":# este funciona


$AnimationPlayer.play("ANDADEMIXAMO")


animacion_actual = "ANDADEMIXAMO"




if event is InputEventKey and event.pressed:# pruebas pero funciona


if event.keycode == KEY_A:# pruebas pero funciona

 

$AnimationPlayer.play("ANDADEMIXAMO")

animacion_actual = "ANDADEMIXAMO"

if event is InputEventKey and event.pressed:# pruebas pero funciona

if event.keycode == KEY_D:# pruebas pero funciona

 

$AnimationPlayer.play("ANDADEMIXAMO")

animacion_actual = "ANDADEMIXAMO"




if event is InputEventKey and event.pressed:# pruebas pero funciona

if event.keycode == KEY_X:# pruebas pero funciona

 

$AnimationPlayer.play("OTROBRAZOMUEVE")

animacion_actual = "OTROBRAZOMUEVE"







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

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

ampliado con presion del mouse boton 1 boton2 y presionar rueda del mouse

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

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

extends Node3D



var animacion_actual = "OTROBRAZOMUEVE"



func _ready():

$AnimationPlayer2.play("UNAMASDEPRUEBASDEMASDEUNA")

pass # Replace with function body.




func _input(event):


if event is InputEventMouseButton:




if event.button_index == 1 and event.pressed :



$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




if event.button_index == 2 and event.pressed :



$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"





if event.button_index == 3 and event.pressed :



$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




func _physics_process(delta):


# Agacharse



if Input.is_action_pressed("ui_down"):


if animacion_actual != "OTROBRAZOMUEVE":


#$AnimationPlayer.play("LEBANTAPIE")

$AnimationPlayer.play("OTROBRAZOMUEVE")


animacion_actual = "OTROBRAZOMUEVE"




elif Input.is_action_pressed("agacharse"):


if animacion_actual != "LEBANTABRAZO":


$AnimationPlayer.play("LEBANTABRAZO")


animacion_actual = "LEBANTABRAZO"




elif Input.is_action_pressed("ui_accept"):


if animacion_actual != "GIRATRONCO":


$AnimationPlayer.play("GIRATRONCO")


animacion_actual = "GIRATRONCO"





elif Input.is_action_pressed("detenerse"):


if animacion_actual != "PASOJASON":


$AnimationPlayer.play("PASOJASON")


animacion_actual = "PASOJASON"





#elif Input.is_action_just_pressed("DISPARAR"):

#elif Input.is_action_released("DISPARAR"):

elif Input.is_action_pressed("DISPARAR"):


if animacion_actual != "ARMAENMANO":


$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




elif Input.is_action_pressed("DISPARAR2"):


if animacion_actual != "ARMAENMANO":


$AnimationPlayer.play("ARMAENMANO")


animacion_actual = "ARMAENMANO"




# Moverse hacia la derecha


#elif Input.is_action_just_pressed("ui_right"):

#elif Input.is_action_just_pressed("andaradelante"):# este funciona

#elif Input.is_action_just_pressed("ui_right"):


func _unhandled_input(event):# pruebas pero funciona

if event is InputEventKey and event.pressed:# pruebas pero funciona

#if event.keycode == KEY_W or event.keycode == KEY_A or event.keycode == KEY_O or event.keycode == KEY_D:

if event.keycode == KEY_W:# pruebas pero funciona




#if animacion_actual != "ANDADEMIXAMO":# este funciona


$AnimationPlayer.play("ANDADEMIXAMO")


animacion_actual = "ANDADEMIXAMO"




if event is InputEventKey and event.pressed:# pruebas pero funciona


if event.keycode == KEY_A:# pruebas pero funciona

 

$AnimationPlayer.play("ANDADEMIXAMO")

animacion_actual = "ANDADEMIXAMO"

if event is InputEventKey and event.pressed:# pruebas pero funciona

if event.keycode == KEY_D:# pruebas pero funciona

 

$AnimationPlayer.play("ANDADEMIXAMO")

animacion_actual = "ANDADEMIXAMO"




if event is InputEventKey and event.pressed:# pruebas pero funciona

if event.keycode == KEY_X:# pruebas pero funciona

 

$AnimationPlayer.play("OTROBRAZOMUEVE")

animacion_actual = "OTROBRAZOMUEVE"



sábado, 27 de julio de 2024

Gdscript 3 ejemplos de una accion con el mouse, boton 1 el 2 y la rueda el 3 al ser prersionada;

 extends Area3D



var Bullet = preload("res://ARRANCA PERSONAJE ANDANDO Y MOVIENDOSE/proyectildefuego-1-tscn.tscn")




func _ready():




pass # Replace with function body.






func _input(event):






if event is InputEventMouseButton:




if event.button_index == 1 and event.pressed :


var bullet = Bullet.instantiate()


add_child(bullet)


if event.button_index == 2 and event.pressed :


var bullet = Bullet.instantiate()


add_child(bullet)

if event.button_index == 3 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



func _on_area_entered(area):

pass # Replace with function body.


Gdscript destruir por tiempo; con Godot 4.2; 2 ejemplos mas;

 extends Node3D


# Contador para llevar el tiempo

var timer = 0.0


func _physics_process(delta):

    # Incrementa el contador con el tiempo transcurrido

    timer += delta


    # Si el tiempo es mayor o igual a 5 segundos

    if timer >= 5.0:

        # Busca todos los nodos hijos de tipo CollisionShape3D

        for child in get_children():

            if child is CollisionShape3D:

                # Quita el nodo del árbol de escena

                child.queue_free()

        # Reinicia el timer para evitar que se ejecute nuevamente

        timer = 0.0

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



extends CPUParticles3D


# Contador para llevar el tiempo
var timer = 0.0

func _physics_process(delta):
# Incrementa el contador con el tiempo transcurrido
timer += delta

# Si el tiempo es mayor o igual a 5 segundos
if timer >= 1.0:
# Busca todos los nodos hijos de tipo CollisionShape3D
for child in get_children():
if child is CollisionShape3D:
# Quita el nodo del árbol de escena
child.queue_free()
# Reinicia el timer para evitar que se ejecute nuevamente
timer = 0.0

martes, 23 de julio de 2024

Script en gdscript para godot 4.2 , para al presionar escape sales del juego y para que transcurridos 24 segundos se cambie la escena del juego;

 extends WorldEnvironment




var tiempo_transcurrido = 0.0  # Variable para almacenar el tiempo transcurrido


func _process(delta):


if Input.is_action_pressed("ui_cancel"):

get_tree().quit()






tiempo_transcurrido += delta


# Si han pasado 20 segundos, elimina el nodo

if tiempo_transcurrido >= 24.0:

#queue_free()

var siguiente_escena = preload("res://LAS SEIS ESCENAS CORTAS DE ENTRADA/LA 6 PLANO GENERAL EN LA HABITACION DEL PROTA/SOLO ROSTRO-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.