domingo, 31 de diciembre de 2023

Script para godot destruye un CollisionShape3D pero la señal sale desde un area3d y se asigna al CollisionShape3D;

 extends CollisionShape3D



# 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_3d_body_entered(body):

queue_free()

pass # Replace with function body.


Script para godot3d 4.2 cuando entra en area3d un objeto el contenido aumenta de tamaño en los 3 ejes y,z,x;

 extends Area3D



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

scale.y+=2.2

scale.x+=2.2

scale.z+=2.2

pass # Replace with function body..


viernes, 29 de diciembre de 2023

Script para Godot3d 4.2 cuando algo entra en area 3d se borra el objeto, cuando sale no gira nada porque nada hay;

 extends Area3D


func _ready():


pass # Replace with function body.


func _process(delta):


pass


func _on_area_entered(area):


queue_free()


pass # Replace with function body.


func _on_area_exited(area):


rotate_x(180)

pass

  

Script para Godot3d 4.2 cuando entra en el area3d gira 180 grados cuando sale otros 180 grados mas;

 extends Area3D


func _ready():


pass # Replace with function body.


func _process(delta):


pass


func _on_area_entered(area):


rotate_x(180)


pass # Replace with function body.


func _on_area_exited(area):


rotate_x(180)

pass

  


Script para godot3d 4.2 cuando entra en el area gira 180 grados cuando sale del area borra esa area3d;

 extends Area3D


func _ready():


pass # Replace with function body.


func _process(delta):


pass


func _on_area_entered(area):


rotate_x(180)


pass # Replace with function body.


func _on_area_exited(area):


queue_free()

pass

  


Script para godot cuando entra en el area3d un objeto rota , cuando sale se traslada;

 extends Area3D



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

rotate_x(180)


pass # Replace with function body.



func _on_area_exited(area):

translate(Vector3(2, 0,0))

pass

jueves, 28 de diciembre de 2023

Sript para godot3d 4.2 cuando entra algo en el area rota 180 grados;

 extends Area3D



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

rotate_x(180)

pass # Replace with function body.


miércoles, 27 de diciembre de 2023

Script para manejar un aparato volador, atento a las lineas rojas hacen que se borre del juego por la linea que dice queue_free() al pulsar tecla numero 2;

 extends RigidBody3D




func _unhandled_input(event):

#if event is InputEventKey:

#if event.pressed and event.keycode == KEY_O:

if event is InputEventKey and event.pressed:

if event.keycode == KEY_J:

#queue_free()

translate(Vector3(1,0,0))

$AudioStreamPlayer.play()

pass


if event is InputEventKey and event.pressed:

if event.keycode == KEY_L:

 

#queue_free()

translate(Vector3(-1,0,0))

$AudioStreamPlayer.play()

pass

 

if event is InputEventKey and event.pressed:

if event.keycode == KEY_I:

#queue_free()

translate(Vector3(0,0,1))

$AudioStreamPlayer.play()

pass



 

if event is InputEventKey and event.pressed:

if event.keycode == KEY_K:

 

#queue_free()

translate(Vector3(0,0,-1))

$AudioStreamPlayer.play()

pass


if event is InputEventKey and event.pressed:

if event.keycode == KEY_Z:

#queue_free()

translate(Vector3(0,1,0))

pass

 

if event is InputEventKey and event.pressed:

if event.keycode == KEY_R:

 

#queue_free()

translate(Vector3(0,2,0))

pass 

if event is InputEventKey and event.pressed:

if event.keycode == KEY_O:

 

#queue_free()

rotate_y(0.04)

pass 

if event is InputEventKey and event.pressed:

if event.keycode == KEY_P:

 

#queue_free()

rotate_y(-0.04)

pass 

if event.keycode == KEY_9:

add_constant_force(Vector3(0,-33,0))

pass

if event.keycode == KEY_8:

add_constant_force(Vector3(0,33,0))

pass

if event.keycode == KEY_7:

apply_torque_impulse(Vector3(0,-10,0))

pass

if event.keycode == KEY_6: 


apply_impulse(Vector3(0,110,0))

pass

if event.keycode == KEY_W: 


apply_impulse(Vector3(0,0,40))

pass

if event.keycode == KEY_S: 

apply_impulse(Vector3(0,0,-40))

pass

if event.keycode == KEY_A: 

apply_impulse(Vector3(40,0,0))

pass

if event.keycode == KEY_D: 

apply_impulse(Vector3(-40,0,0))

pass

if event.keycode == KEY_1:

rotate_z(1)

pass

if event.keycode == KEY_2:

rotate_x(1)

queue_free()

pass

#var objeto = load ("res://rigid_body_3d_2lochoco.tscn")

## func _ready();

#set_process(true)

#func _process(delta):

##var instanciar = objeto.instance()

#if event.keycode == KEY_4: 

# add_child(instanciar)

##  pass


Script para Godot3d 4.2 que sirve para cambiar la posicion de su contenido cuando algo toca su Area3d;

 extends Area3D



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

translate(Vector3(0, 100,0))

pass # Replace with function body.



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

En este script estoy intentando recolocar una camara cuando algo toca el Area3d donde esta como hijo,

quizas pueda por algun impacto que la camara enfoque un letrero de game over, u otro letrero de juego completado...........

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


martes, 26 de diciembre de 2023

Script de godot 3d 4.2 entra en area3d se translada sale del area retorna;

 


extends Area3D



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

translate(Vector3(16, 0, 0) * 0.5)

pass # Replace with function body.



func _on_area_exited(area):

translate(Vector3(-16, 0, 0) * 0.1)

pass # 


Script para godot3d 4.2 cuando algo entra en el area3d se mueve en el vector y cambia de posicion;

 extends Area3D

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

translate(Vector3(16, 0, 0))

pass # Replace with function body.


lunes, 25 de diciembre de 2023

script para godot3d 4.2 cuando algo entra en el area3d se encoge el objeto;

 extends Area3D



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

scale.y-=0.05

pass


SCRIPT EN GODOT3D 4.2 QUE ACTIVA UNA ANIMACION DE UN PERSONAJE CON HUESOS...;

 extends Node3D



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

$AnimationPlayer.play("Game_engineAction")

pass

---------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
Este script anima una animacion de un humanoide, primero se hace con makehuman-community un personaje luego de asignarle un esqueleto se pasa a fbx a blender , en blender se anima a mano, y de hay se exporta a godot3d 4.2 en formato glb, en el script se pone el nombre de la animacion....."Game_engineAction" en este caso, pero se puede poner el nombre que queramos....




martes, 19 de diciembre de 2023

Script para godot3d 4.2 que produce una animacion exclusivamente presionando boton del raton;

 extends CSGSphere3D


func _input(event):


#if event is InputEventMouseMotion:

if Input.is_action_just_pressed("MOUSE_RIGHT"):

 

$AnimationPlayer.play("blanca4")



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

El script solo funciona si primero se cliquea arriba del todo en godot en proyeco luego en configuracion del proyecto luego hay que escribir en nueva accion un nombre yo en este caso segui un ejemplo y puse 

MOUSE_RIGHT  cuando aparece devajo del todo se le da a mas y yo en este caso elegi Boton izquierdo del mouse...aunque 
right creo significa derecho....son solo pruebas y me funciona pienso que si pongo en castellano RATON_IZQUIERDO  funcionara de igual forma, entonces en el escript hay que poner tambien RATON_IZQUIERDO .....en fin boy haciendo pruebas y boy abanzando......
-------------------------------------------------------------------------------------------------------------------------

sábado, 16 de diciembre de 2023

Script para Godot 4.2 rotar un area 3d y borrar esa area3d a tocar otra area3d diferente, la que gira contiene una camara que se borra al ser hijo;

 extends Area3D


# Called when the node enters the scene tree for the first time.


func _ready():


pass # Replace with function body.

func _process(delta):


rotate_y(0.001)


pass


func _on_area_entered(area):


queue_free()


pass # Replace with function body.

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

Script para Godot 4.2 rotar un area 3d y borrar esa area3d a tocar otra area3d diferente, la que gira contiene una camara que se borra al ser hijo;

mi intencion es hacer cambios de camara y de puntos de vista conforme se desenlaza un juego........

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


jueves, 14 de diciembre de 2023

script en Gdscript para Godot4.2 que hace girar unas aspas constantemente y acelerarlas al presionar el numero 6 entre otras caracteristicas;

 extends MeshInstance3D

func _process(delta):

rotate_y(0.01)

pass




func _unhandled_input(event):

if event is InputEventKey:

if event.pressed and event.keycode == KEY_6:

rotate_y(90.88)

$AudioStreamPlayer3D.play()





if event.pressed and event.keycode == KEY_W:

rotate_y(0.33)

$AudioStreamPlayer3D.play()



if event.pressed and event.keycode == KEY_A: 

rotate_y(0.44)

$AudioStreamPlayer3D.play()

if event.pressed and event.keycode == KEY_D: 

rotate_y(0.41)

$AudioStreamPlayer3D.play()


if event.pressed and event.keycode == KEY_S:

rotate_y(0.48)

$AudioStreamPlayer3D.play()



if event.pressed and event.keycode == KEY_I:

rotate_y(0.33)

$AudioStreamPlayer3D.play()

if event.pressed and event.keycode == KEY_J:

rotate_y(0.33)

$AudioStreamPlayer3D.play()


if event.pressed and event.keycode == KEY_K:

rotate_y(0.33)

$AudioStreamPlayer3D.play()

if event.pressed and event.keycode == KEY_L:

rotate_y(0.33)

$AudioStreamPlayer3D.play()


------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------
explicacion::::::::: 
--------------------------------------------------------------------------------------------------------------------------


func _process(delta):

rotate_y(0.01)

pass

estas lineas dan giro constantemente---------------------



func _unhandled_input(event):

if event is InputEventKey:

if event.pressed and event.keycode == KEY_6:

rotate_y(90.88)

$AudioStreamPlayer3D.play()


estas lineas dan giro solamente al presionar tecla numero 6 y lo giran a mayor velocidad--------------------




martes, 12 de diciembre de 2023

Script para Godot3d 4.2 que sirve para sumar puntos en un marcador en la pantalla del juego;

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

Increible partiendo de nodos Area3D y con la señal de func _on_area_entered(area):

con scripts muy simples se consige, sumar puntos en este caso, en los otro ejemplos del blog consegi borrar objetos por colision y cambiar las animaciones de ellos por colision y activar sonido por colision todo esto en 60 dias de utilizar godot sin tener ni idea...........pronto añadire videos explicativos para que todo el que quiera lo aplique a sus desarrollos.........

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


 extends Area3D

var score = 0


func _ready():

pass


func _on_area_entered(area):

$Label3D.text = str(score)

score += 1

pass


lunes, 11 de diciembre de 2023

Script para Godot3d 4.2 que usa la señal de func _on_area_entered(area): para cambiar una animacion y a la vez producir un sonido;

 extends Area3D



func _on_area_entered(area):

$SOLDADO3/AnimationPlayer.play("caesoldado")

$AudioStreamPlayer.play()

pass # Replace with function body.



✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍

(esta entrada del blog esta en construccion tengo una par de videos muy buenos explicando todos estos conceptos, uno lo colge con mi voz explicando y funciona muy bien el otro esta colgado en el blog tambien pero no explico nada, creo que obserbandolo tambien se puede aprender y hoy e echo un tercero que me parece tambien buenisimo......me los currare narrando con voz en of estos temas creo que la gente se decepciona si no escucha en el video algunas explicaciones de lo que se esta haciendo...✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍..)

✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍

✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍✍


domingo, 10 de diciembre de 2023

Script para Godot3d 4.2 que activa una animacion cuando se toca el Area3d, en este caso abre una puerta al pasar;

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

Script para Godot3d 4.2 que activa una animacion cuando se toca el Area3d, en este caso abre una puerta al pasar;

es lo mismo que para borrarla....pero cambia una linea del script--------

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

 extends Area3D



func _on_area_entered(area):

$AnimationPlayer.play("abreazul")

pass # Replace with function body.

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

extends Area3D


func _on_area_entered(area):
queue_free()
pass # Replace with function body.
------------------------------------------------------------------------------------------------------------------




HACE LA ANIMACION
-----------------------------------------------------------------------------------------------------------------

extends Area3D


func _on_area_entered(area):
$AnimationPlayer.play("abreazul")
pass # Replace with function body.

----------------------------------------------------------------------------------------------------------------------
PROBOCA EL SONIDO
--------------------------------------------------------------------------------------------------------------------
extends Area3D


func _on_area_entered(area):
$AudioStreamPlayer3D.play()
pass # Replace with function body.
-----------------------------------------------------------------------------------------------------------------


viernes, 8 de diciembre de 2023

Borrar por script en godot3d version4.2;




Estos ejercicios de scrpt me han dado resultado y e conseguido que un cubo partiendo de base de un nodo Area3d al colisionar con otro se borre del juego al ejecutarse.......



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


extends Area3D



# Called when the node enters the scene tree for the first time.

func _ready():

pass # Replace with function body.




func _on_area_entered(area):

queue_free()

pass # Replace with function body.








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












extends Area3D


# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.



func _on_area_entered(area):
queue_free()
pass # Replace with function body.
func _process(delta):

scale.y*=1.55

pass






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


extends Area3D


# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.



func _on_area_entered(area):
queue_free()
pass # Replace with function body.
func _process(delta):

#scale.y*=1.55
translate(Vector3(0,0.02,0))
pass




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



extends Area3D


# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.



func _on_area_entered(area):
queue_free()
pass # Replace with function body.
func _process(delta):

#scale.y*=1.55
translate(Vector3(0,0.001,0))
pass










Escala un cubo para Godot4.2;

 extends RigidBody3D



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

scale.y*=1.55

pass


Da un tipo de impulso hacia arriba en un cubo script para Godot3d 4.2;

 extends RigidBody3D



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

#translate(Vector3(0,0.08,0))

#pass



func _process(delta):

apply_torque_impulse(Vector3(0,0.08,0))

pass


Sube un cubo lentamente en Gdscript para godot 4.2;

extends RigidBody3D



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

translate(Vector3(0,0.08,0))

pass


Rota cubo en eje "y" a velocidad 44 en godot 4.2 con Gdscript;

 extends RigidBody3D



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

rotate_y(44)

pass


Demo de videojuego echo en Godot3d version de Godot 4.2;

 Demo de juego echo en Godot version 4.2

Esta echo para windows  se tiene que descargar ....intentaba hacerlo para html5 pero no tengo conocimientos para hacerlo, en fin en windows funciona de maravilla...








jueves, 7 de diciembre de 2023

Como modelar y hacer fisicas de colision en Godot 4.2 una forma.;

 En el video pongo una forma de modelar cubos en godot para hacer paredes o columnas obstaculos, y como mas o menos consigo que tenga colisiones que probocan fisicas de derrumbe, hay que seguir el orden que se ve en el video, primero un RigidBody3D3 y de hijo del RigidBody3D3 un CSGBox3D y otro hijo partiendo tambien del RigidBody3D3 un CollisionShape3D, mirar el video y practicar, cuesta hacer figuras simples y encajar los diferentes elementos que hacen fisicas, te sale una advertencia continuamente de que que tienes que ampliarlo todo proporcinalmente, si no, no sirve, una curisidad del proyectil que dispara, esque es una animacion activada por script, no es un proyectil instanciado por script, no consigo hacerlo, tengo que estudiar y practicar mucho mas aun, pero funciona, algun juegecillo simple se puede hacer con estos pocos conocimientos........



domingo, 3 de diciembre de 2023

Como hacer un fogonazo de arma en Godot 3d;

 extends MeshInstance3D

func _input(event):

if event.is_action_pressed("ui_accept"):

$AnimationPlayer.play("fogonazo")





Para aumentar la velocidad de una animación en Godot, puedes seguir los siguientes pasos:

  1. Abre el editor de animaciones y selecciona la animación que deseas acelerar.
  2. En la sección de Playback, ajusta el valor de Speed Scale a un valor mayor que 1. Por ejemplo, si deseas que la animación se reproduzca al doble de velocidad, establece el valor en 2.
  3. Guarda los cambios y reproduce la animación para verificar que se está reproduciendo a la velocidad deseada.

Script para animar un objeto que hace de proyectil, en Godot3d con Gdscript, este script activa una animacion previamente echa;





 Script para animar un objeto que hace de proyectil, en Godot3d  con Gdscript, este script activa una animacion previamente echa;


script muy simple y completo, como funciona?

primero hay que poner el escript en el CSGSphere3D2cinanimacion este tiene de hijo la animacion

AnimationPlayer aqui hemos creado una amimacion llamada "animarparaes"

la animacion esta echa manualmente y hay que jugar con el tema de loop repetitivo y parar animacion de forma que solo se realice una sola animacion al presionar la tecla espacio, sorprendentemente me funciona, y puedo hacer proyectiles que disparan sin tener que instanciar nada, ahora es cuestion de ir practicando el tema dandole masdistancia ala animacion del disparo y jugando con las velocidares,

CSGSphere3D2cinanimacion es el proyectil, este a su vez es hijo de un RigidBody3D2CUBOLOCO

que tiene su propio script para moverlo por la escena puede volar y correr por el escenario, cuando manejo este RigidBody3D2CUBOLOCO por el escenario y presiono la tecla "espacio" activo la nimacion del proyectil con nombre archibo CSGSphere3D2cinanimacion que me acompaña constantemente por ser hijo y e conseguido un vehiculo que tiene un proyectil que se dispara al presionar la tecla "espacio"

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

extends CSGSphere3D

func _input(event):

if event.is_action_pressed("ui_accept"):

$AnimationPlayer.play("animarparaes")

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

el script de debajo funciona mismo sistema pero en un cubo no en una esfera, para probar abrir puertas


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

extends CSGBox3D

func _input(event):


if event.is_action_pressed("ui_accept"):


$AnimationPlayer.play("ABRE")