lunes, 29 de abril de 2024

Mi juego; venga a disfrutarlo todo el mundo mayor de 18 años;

 

domingo, 28 de abril de 2024

El Loco del Cruzero, demo de videojuego echo con Godot 4.2 3Dimensiones;

 

Captura en video de proximo videojuego que publicare en unos dias en Itchi.io al precio de 2$ , posiblemente consiga una o dos ventas y cerca de cien visitas el primer dia de su publicacion, bueno me refiero a las visitas a la ventas de una a cuatro semanas y no superara una o dos ventas, lo tengo experimentado.
Hace mucha ilusion de todas formas ganarse una calderilla. si se hacen juegos y se publican de forma razonable , sin abusar y siendo realista con lo que se hace no te vetan la cuenta de Itch.io, pero si haces el tonto se dan cuenta y te la bloquean.

Video capture of the next video game that I will publish in a few days on Itchi.io at the price of $2, possibly getting one or two sales and close to a hundred visits on the first day of its publication, well I mean the visits to the sales of one to four weeks and it will not exceed one or two sales, I have experienced it.
It's very exciting to earn a little money anyway. If you make games and publish them in a reasonable way, without abusing them and being realistic about what you do, they won't ban your Itch.io account, but if you act stupidly, they will notice and block it.

jueves, 25 de abril de 2024

GDScript metodo de entrada de teclado, al presionar "W" rota un MeshInstance3D;

 extends MeshInstance3D


func _unhandled_input(event):

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


rotate_y(10.33)


#$AudioStreamPlayer3D.play()

# 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

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

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

EXPLICACION: Otro script que en teoria es corrcto pero me crea un conflicto con el resto de nodos y escenas de mi juego....e de estudiar que pasa........ como se ve en la captura de pantalla las flechitas azules de la izquierda indican que esta correcto....!!!!


Posible sonido al presionar espacio, para un Area3d con godot 4.2, si no existen otros sonidos; GDScript;

 extends Area3D




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

func _ready():

if Input.is_action_pressed("ui_accept"):

$"AudioStreamPlayer3D SUENANSUSPASOS".play()

if Input.is_action_just_released("ui_accept"):

$"AudioStreamPlayer3D SUENANSUSPASOS".play()

pass # Replace with function body.



# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta):

#if Input.is_action_pressed("w"):


pass

--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
EXPLICACION: el script es correcto, pero si hay otras areas 3d y el juego empieza a estar cargado de otros sonidos y elementos es posible que entre en conflicto con el resto de nodos y escenas, que es lo que me esta pasando ahora con un juego que empieza a ser amplio, de todas formas como me sale correcto lo pongo en el blog por si se quieren hacer pruebas,,,,,,Tiene que ser correcto porque a si lo marcan las flechitas azules
Tiene que ser correcto porque a si lo marcan las flechitas azules......

martes, 23 de abril de 2024

Script en 5 lineas hace animacion repetitiva en loop, para godot 4.2, en GDScript;

 extends Node3D



func _ready():

 

   $AnimationPlayer.play("CABREADA1") 


 

func _process(delta):

  

  pass

---------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------- EXPLICACION:
No tenia la animacion en LOOP y este sencillisimo script me lo soluciono.........

domingo, 21 de abril de 2024

Desde un Area3d Rota label3d constantemente y lo escala a mayor , borra SoftBody3, borra CollisionShape3D; GDScript Godot 4.2;

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

$Label3DDICEIMBECIL.rotate_y(delta * 1.9)

pass



func _on_area_entered(area):

var escala_actual = $Label3DDICEIMBECIL.scale

$Label3DDICEIMBECIL.scale = escala_actual * 18.0

var parent = get_parent()

var Turbo = parent.get_node("$SoftBody3Dvestido")

$SoftBody3Dvestido.queue_free()

$CollisionShape3Dquieroborrartambien.queue_free()

pass # Replace with function body.

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

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

Exlicacion: desde enlace muy buenos estos scripts...https://videojuegosenlineaasaco4.blogspot.com/2024/04/borrar-elementos-concretos-de-un-area3d_21.html

Borrar elementos concretos de un Area3D mediante scriptGDScript Godot 4.2; + poner un Label3d de texto que se amplia en esa colision;

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

var escala_actual = $Label3DDICEIMBECIL.scale

$Label3DDICEIMBECIL.scale = escala_actual * 2.0

var parent = get_parent()

var Turbo = parent.get_node("$SoftBody3Dvestido")

$SoftBody3Dvestido.queue_free()

$CollisionShape3Dquieroborrartambien.queue_free()

pass # Replace with function body.


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

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

EXPLICACION Y CAPTURA DE PANTALLA:

Tengo un personaje en Godot3d 4.2 al que por colision quiero borrarle el vestido, en el script me encontre con fallos que provocaban que el juego se bloquease, cuando el player tocaba  al personaje le borraba el vestido y funcionaba bien, pero cuando lo volvia a tocar se bloqueaba el juego porque ....no borraba tambien el CollisionShape3Dquieroborrartambien que producia la orden de borrar el vestido, entonces entendi que al volver a tocar ese CollisionShape3Dquieroborrartambien que en el script mandaba borrar el SoftBody3Dvestido y el programa al correr veia que no existia ese elemento a borrar porque ya se hizo anteriormente, se contradecia y se paraba ,bloqueaba el juego, SOLUCION.......borrar tambien al colisionar, tocar,  ese CollisionShape3Dquieroborrartambien y asi e conseguido solucionar ese bloqueo del juego, e tenido que pensar y razonar y me cuesta mucho la verdad, se me da muy mal programar, pero no me queda otra, si no imposible desarrollar con Godot 4.2

Hemos ampliado el script con nuebo elemento un label3d que pone un texto en 3d, lo escala en esa colision y en el script e señalado las dos lineas nuevas de verde todo funciona perfectamente...







Borrar elementos concretos de un Area3D mediante scriptGDScript Godot 4.2;

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

var parent = get_parent()

var Turbo = parent.get_node("$SoftBody3Dvestido")

$SoftBody3Dvestido.queue_free()

$CollisionShape3Dquieroborrartambien.queue_free()

pass # Replace with function body.

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

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

EXPLICACION Y CAPTURA DE PANTALLA:

Tengo un personaje en Godot3d 4.2 al que por colision quiero borrarle el vestido, en el script me encontre con fallos que provocaban que el juego se bloquease, cuando el player tocaba  al personaje le borraba el vestido y funcionaba bien, pero cuando lo volvia a tocar se bloqueaba el juego porque ....no borraba tambien el CollisionShape3Dquieroborrartambien que producia la orden de borrar el vestido, entonces entendi que al volver a tocar ese CollisionShape3Dquieroborrartambien que en el script mandaba borrar el SoftBody3Dvestido y el programa al correr veia que no existia ese elemento a borrar porque ya se hizo anteriormente, se contradecia y se paraba ,bloqueaba el juego, SOLUCION.......borrar tambien al colisionar, tocar,  ese CollisionShape3Dquieroborrartambien y asi e conseguido solucionar ese bloqueo del juego, e tenido que pensar y razonar y me cuesta mucho la verdad, se me da muy mal programar, pero no me queda otra, si no imposible desarrollar con Godot 4.2



miércoles, 17 de abril de 2024

Script para animar humanoide y rotarlo a si mismo desde un nodo3d para godot 4.2;

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

rotate_y(0.1)

$AnimationPlayer.play("LAENFADA")

pass


martes, 16 de abril de 2024

Script borra softbody3d de un personaje el vestido; godot 4.2; Script PARA RigidBody3D Y ALOS 3 SEGUNDOS LO BORRA ;

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

$"LA VIEJA/SoftBody3D".queue_free()

$"LA VIEJA/SoftBody3D3".queue_free()

$"LA VIEJA/SoftBody3D4".queue_free()

$"LA VIEJA/SoftBody3D2".queue_free()

pass # Replace with function body.

------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
EXPLICACION:  De un Area3d (donde e puesto el script) parten 2 hijos "la vieja" (un node3D) y el otro un CollisionShape3D....los SoftBody3D los cuatro diferentes del script son hijos del "la vieja" (un node3D) y nietos del area3d principal . funciona a la perfeccion cuando el player choca con  CollisionShape3D  se borra el vestido ,este ejemplo es de arriba, abajo otra variante que funciona en el cubo en la ropa no funciona............¡¡atencion estos scripts cuando repite  colisionar el juego se bloquea!! aun tiene fallos.........
--------------------------------------------------------------------------------------------------------------------------
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):
#$"LA VIEJA/SoftBody3D3".queue_free()
#$"LA VIEJA/SoftBody3D4".queue_free()
#$"LA VIEJA/SoftBody3D2".queue_free()
#$"LA VIEJA/CSGBox3Dgira".rotate_x(1)
$"LA VIEJA/CSGBox3Dgira".scale /= 2.5
$"LA VIEJA/SoftBody3D".scale /= 0.005
$"LA VIEJA/SoftBody3D2".scale /= 0.005
$"LA VIEJA/SoftBody3D3".scale /= 0.005
$"LA VIEJA/SoftBody3D4".scale /= 0.005
pass # Replace with function body.



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

ESTE DE DEBAJO SI FUNCIONA SIN PROBLEMAS , SE PONE A UN  RigidBody3D Y ALOS 3 SEGUNDOS LO BORRA NO NECESITA SEÑAL TAMPOCO.
-------------------------------------------------------------------------------------------------------------
extends RigidBody3D

var timer = 0.0

func _physics_process(delta):
# Incrementar el temporizador
timer += delta

# Eliminar el RigidBody3D después de 3 segundos
if timer >= 3.0:
queue_free()


lunes, 15 de abril de 2024

GDScript proboca explosion y borra barco y sale barco roto, instancia explosion bolas instancia barco roto y borra barco sin destruir;

 extends Area3D


var esfera_prefab = preload("res://BARCO Y ELEMENTOS DEL BARCO/BOTE/BOTECAIDO.tscn")  # Precarga el prefab del barco (bote caído)

var explosion_prefab = preload("res://ESCENAS/EXPLOSION BAJO BOTE.tscn")  # Precarga el prefab de la explosión (invento genial)


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

func _ready():

pass  # No hay necesidad de código inicial en este ejemplo


# Called every frame. 'delta' is the elapsed time since the previous frame.

func _process(delta):

pass  # No hay necesidad de código por frame en este ejemplo


# Detecta cuando otro nodo entra en el área

func _on_area_entered(area):

# Verifica si el objeto que entró tiene un nodo CollisionShape3D

if area.has_node("CollisionShape3D"):


var barco_instancia = esfera_prefab.instantiate()


# Crea una instancia del prefab de la explosión (invento genial)

var explosion_instancia = explosion_prefab.instantiate()


# Agrega las instancias como hijos de este nodo

add_child(barco_instancia)

add_child(explosion_instancia)


# Detecta cuando otro nodo sale del área (opcional)

func _on_area_exited(area):

var parent = get_parent()


var CollisionShape3Dcubo = parent.get_node("CollisionShape3D")


get_node("CollisionShape3D").queue_free()  # Intento de eliminar CollisionShape3D propio (comentado)

---------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------
EXPLICACION:::::::
estructura padres e hijos .. padre principal de todo  WorldEnvironment hijo donde esta el script un Area3d esta tiene de nieto un CollisionShape3D de este sale dos vicnietos un MeshInstance3D y otro MeshInstance3D con nombre "bote2


Instancia bolas cuando entra en un Area3d el player y cuando presiona boton del mouse, para godot 4,2 3D; GDScript;

 extends Area3D


var Bullet = preload("res://ESCENAS/EXPLOSION BAJO BOTE.tscn")


func _ready():


pass # Replace with function body.



func _input(event):


if event is InputEventMouseButton:


if event.button_index == 1:


var bullet = Bullet.instantiate()



add_child(bullet)



func _on_area_entered(area):

var bullet = Bullet.instantiate()



add_child(bullet)

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

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

En el script de debajo funciona solo cuando pasa por su Area3d, pusimos signo"#" a lo que no queremos que ejecute

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

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

extends Area3D var Bullet = preload("res://ESCENAS/EXPLOSION BAJO BOTE.tscn") func _ready(): pass # Replace with function body. #func _input(event): #if event is InputEventMouseButton: #if event.button_index == 1: #var bullet = Bullet.instantiate() #add_child(bullet) func _on_area_entered(area): var bullet = Bullet.instantiate() add_child(bullet)




A los 3 segundos borra nodo3d, y todo su contenido para Godot 4.2; Script GDScript;

 extends Node3D


var tiempo_transcurrido = 0.0 # Variable para almacenar el tiempo transcurrido


func _process(delta):

# Actualizar el tiempo transcurrido

tiempo_transcurrido += delta


# Eliminar el nodo después de 3 segundos

if tiempo_transcurrido >= 3.0:

queue_free() # Elimina el nodo de la escena


viernes, 12 de abril de 2024

Anima label y lo borra por tiempo, titulo de juego; para Godot 4.2;

 extends Label


var tiempo_de_vida = 4.0 # Duración en segundos antes de eliminar el Label


func _ready():

# Obtener el Label que queremos usar

var label_tiempo_vida = $"."


# Mostrar el texto del Label en este Label

text = label_tiempo_vida.text


# Iniciar el temporizador

$Timer.start(tiempo_de_vida)


func _on_timer_timeout():

# Eliminar el Label

queue_free()


func _process(delta):

$AnimationPlayer.play("FONDOMUEBETE")

# Si el tiempo de vida ha llegado a 0, eliminar el Label

if tiempo_de_vida <= 0:

_on_timer_timeout()

return


# Reducir el tiempo de vida en cada frame

tiempo_de_vida -= delta


EN GODOT 4.2, SCRIPT POR PUNTUACION SI LLEGA A LOS 8 PUNTOS BORRA LA ESCENA Y CAMBIA A OTRA CON CAMARA FUNCIONA¡¡¡¡¡¡¡¡;

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

------------------------------------------------------------------------------------------------------------------
SCRIPT POR PUNTUACION SI LLEGA A LOS 8 PUNTOS BORRA LA ESCENA Y CAMBIA A OTRA CON CAMARA FUNCIONA¡¡¡¡¡¡¡¡
---------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------
extends Area3D  

#var fuerza_intensidad = 110.9  // Variable que define la intensidad de la fuerza que se aplicará en la colisión.
var score = 0  


# Se llama cuando el nodo ingresa al árbol de escena por primera vez.

func _ready():
pass  # Por ahora, este método está vacío, pero puedes usarlo para realizar configuraciones iniciales.


# Se llama en cada frame del juego. 'delta' es el tiempo transcurrido desde el frame anterior.

func _process(delta):
pass  # Por ahora, este método está vacío, pero puedes usarlo para realizar acciones que se repiten cada frame.


func _on_area_entered(area):  # Se llama cuando otro objeto entra en el área de colisión de este nodo.

# Actualiza el texto del Label3D para mostrar la puntuación actual.
$Label3D.text = str(score)

# Aumenta la puntuación en 1.
score += 1

# Reproduce la animación "EXPLOTA" del AnimationPlayer adjunto al padre de este nodo (../ indica subir un nivel en la jerarquía del árbol de escena).
$"../AnimationPlayer".play("EXPLOTA")

# Reproduce el AudioStreamPlayer3D asociado al AnimationPlayer para generar un sonido de explosión.
$"../AnimationPlayer/AudioStreamPlayer3D".play()
# La parte comentada define una dirección de fuerza, por ahora no se usa en el código.
# var direccion_fuerza = Vector3(fuerza_intensidad, 0.0, 0.0)

# Puedes agregar aquí código para aplicar la fuerza a objetos que entren en colisión.

# Si la puntuación alcanza los 100 puntos, cambia de escena a "AMA".
if score == 8:
var siguiente_escena = preload("res://BARCO Y ELEMENTOS DEL BARCO/BARRIL EXPLOSIBO/bidon.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



viernes, 5 de abril de 2024

Captura en video de mi proximo videojuego desarrollandolo con Godot 4.2, comentarios;

El juego estoy desarrollandolo con Godot 4.2 en 3D y estoy muy orgulloso de lo que boy consiguiendo, animaciones y modelado de puertas, entorno que se desembuelve en un barco, efectos de particulas, efecto de movimiento del mar, modelado y animacion de gaviotas con blender, sonidos, y un particular sentido del humor a lo largo del videojuego, que sera de exploracion y de sorpresas chocantes, sera para mayores de 18 años y a final de este mes quizas ya lo publique....en itch.io por su puesto.
Efectos de tela y ropa...luz iluminacion me encanta que tras poner esfuerzo en el modelado y animacion de una puerta o una gaviota u otro personaje o elemento del juego luego puedo simplemente copiarlo y duplicarlo e ir contruyendo el juego en si mismo



 

martes, 2 de abril de 2024

Script para Godot 4.2 3D , contenido en un CPUParticles3D el script , proboca que a los 3 segundos se dirija a una escena diferente del juego;

 extends CPUParticles3D


var tiempo_transcurrido: float = 0.0


# Función que se ejecuta al entrar la escena por primera vez.

func _ready():

pass  # Reemplaza con el cuerpo de la función si es necesario.


# Función que se ejecuta cada frame. 'delta' es el tiempo transcurrido desde el frame anterior.

func _process(delta):

tiempo_transcurrido += delta

if tiempo_transcurrido >= 3.0:

# Cambiar la escena a "otro.tscn"

var siguiente_escena = preload("res://BARCO Y ELEMENTOS DEL BARCO/BARRIL EXPLOSIBO/bidon.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

-------------------------------------------
-------------------------------------------
Explicacion: muy buen script a los 3 segundos borra la escena y se dirije a otra diferente, con estos pasos podre hacer avances muy importantes en godot 4.2 , como player abatido y cambio a escena de este cuando cae y retorno a riniciar el juego, cambios de camaras tambien creo podre hacer.......



--------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
SCRIPT POR PUNTUACION SI LLEGA A LOS 8 PUNTOS BORRA LA ESCENA Y CAMBIA A OTRA CON CAMARA FUNCIONA¡¡¡¡¡¡¡¡
---------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------
extends Area3D  

#var fuerza_intensidad = 110.9  // Variable que define la intensidad de la fuerza que se aplicará en la colisión.
var score = 0  


# Se llama cuando el nodo ingresa al árbol de escena por primera vez.

func _ready():
pass  # Por ahora, este método está vacío, pero puedes usarlo para realizar configuraciones iniciales.


# Se llama en cada frame del juego. 'delta' es el tiempo transcurrido desde el frame anterior.

func _process(delta):
pass  # Por ahora, este método está vacío, pero puedes usarlo para realizar acciones que se repiten cada frame.


func _on_area_entered(area):  # Se llama cuando otro objeto entra en el área de colisión de este nodo.

# Actualiza el texto del Label3D para mostrar la puntuación actual.
$Label3D.text = str(score)

# Aumenta la puntuación en 1.
score += 1

# Reproduce la animación "EXPLOTA" del AnimationPlayer adjunto al padre de este nodo (../ indica subir un nivel en la jerarquía del árbol de escena).
$"../AnimationPlayer".play("EXPLOTA")

# Reproduce el AudioStreamPlayer3D asociado al AnimationPlayer para generar un sonido de explosión.
$"../AnimationPlayer/AudioStreamPlayer3D".play()
# La parte comentada define una dirección de fuerza, por ahora no se usa en el código.
# var direccion_fuerza = Vector3(fuerza_intensidad, 0.0, 0.0)

# Puedes agregar aquí código para aplicar la fuerza a objetos que entren en colisión.

# Si la puntuación alcanza los 100 puntos, cambia de escena a "AMA".
if score == 8:
var siguiente_escena = preload("res://BARCO Y ELEMENTOS DEL BARCO/BARRIL EXPLOSIBO/bidon.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



Script que al explosionar un recipiente, a los 5 segundos se borran las particulas y se reinicia el juego, en Godot 4.2;

extends CPUParticles3D

var tiempo_transcurrido: float = 0.0


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

tiempo_transcurrido += delta

if tiempo_transcurrido >= 5.0:

get_tree().reload_current_scene()

queue_free()

pass

----------------------------------------------------------------
----------------------------------------------------------------
-----------------------------------------------------------------
EXPLICACION:
Mi player toca un bidon de gasolina, este explota y alos 5 segundos se reinicia el juego ademas de borrar sus particulas.......

Script en Godot 4.2 3d, borra particulas a los 5 segundos;

 extends CPUParticles3D

var tiempo_transcurrido: float = 0.0


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

tiempo_transcurrido += delta

if tiempo_transcurrido >= 5.0:

queue_free()

pass