miércoles, 20 de noviembre de 2024

Trabajo que publicare en itchi.io, perico415 - itch.io calculo en enero del 2025,;

 

https://perico415.itch.io/

Despues de 11 meses mas o menos casi un año de desarrollar con Godot, muestro este video de mi proximo trabajo que publicare en itchi.io, perico415 - itch.io calculo en enero del 2025, en estos 11 meses publique en itchi.io varios juegos, todos de tematica adulta,


Todos con bastante audiencia, y algunas capturas de video muy exitosas, teniendo en cuenta que no soy Youtuber de éxito y popular,


Realmente no me arrepiento de cambiarme a Godot antes usaba Unity, pero veia mucho royo, y para ser un aficionado en estos temas de desarrollar videojuegos, yo solo quiero hacerme rico haciendo juegos, no necesito a Unity ni trabajar para una empresa, yo me vasto y me sobro para ganar mucha pasta¡¡¡¡


Soy sarcastico….pero realmente me siento capaz de cualquier cosa!!!!


No ahora en serio, me gusta muchisimo crear videojuegos, y con Godot me siento muy comodo.



Y me encanta ver como suben un monton las visitas a mi pagina de Itch.io. perico415 - itch.io .



En este video, muestro mi proximo trabajo, tematica de intriga y misterio y surrealismo, me inspira el ambiente nocturno del cine de terror, me inspira Stephen king,


El juego va de un ascensor y de situaciones al vajar y subir plantas de un edificio, en cada planta procuro cambiar la escena, las animaciones , me da por hacerlas manualmente incluso las de caminar que son muy muy dificiles de hacer, pero lo estoy haciendo, y el juego tendra todo un mismo estilo de movimiento y de graficos 3d, podria poner animaciones ya echas realistas, pero me esta gustando hacerlas yo, y si desarrollo juegos es por diversion no por obligacion,




La IA del navegador Microsoft Edge me esta ayudando muchisimo en el tema de programacion GDScript que es el que usa Godot 4.3, es la version que estoy utilizando.



No te resuelve la papeleta, tienes que ir preguntando y probando y cambiando lineas de codigo, y al final estoy teniendo muy buenos resultados, lo mejor cuando un codigo, un script funciona, puedes hacer cambios y añadirle lineas o cambiarlas, y voy aprendiendo.


Ayuda a aprender es como tener un profesor particular.



Pondre varios scripts que utilizo en el juego, algunos vienen con el propio Godot otros los e retocado yo sacando informacion de aquí y de aya,


En este juego estoy empezando a manipular barra de vida, algo estoy haciendo y saldra en el juego, con script que me proporciono la IA , puedo manipular ideas y temas que salen en el juego,


Mis herramientas de trabajo son, Godot 4.3, Blender, Gimp, Paint, Makehuman, lmms , practicamente casi todos de tipo software libre.org , tambien uso algo de la web OpenGameArt.org .


Y efectos de sonido de https://www.videvo.net/

E conseguido hacer efectos de tembleque del ascensor, efectos de aparecer y desaparecer de fantasmas, cambiar escenas con facilidad por paso de tiempo o presionando alguna tecla del pc,


Me encanta y me gusta muchisimo poder jugar con las camaras y sus enfoques, haciendo un juego de estilo como de cine y de comic.


Y bueno hay estoy con mi maravillosa aficion, con la que pienso hacerme multimillonario……..perdon con la que pienso entretenerme asta el fin de mis dias, si la salud me lo permite, que pienso seran muchos años ya que para esto no hace falta correr maratones ni levantar cargas pesadas de 50 kilos, ….


Eso si paciencia….toneladas….contancia...eterna. Espero guste el video ...ala asta luego!!!!!



A continuacion algunos scripts GDScript que uso en el juego, ayudado por la IA, sino imposible no tengo estudios de programacion.........

extends MeshInstance3D


func _input(event):

# Comprobamos si es un evento de teclado

if event is InputEventKey:

if event.pressed:

if event.keycode == KEY_Z:

rotate_x(0.04)

elif event.keycode == KEY_X:

rotate_x(-0.04)

# Comprobamos si es un evento de acción de entrada

elif event is InputEventAction:

pass

#func _input(event):

if event is InputEventMouseButton:



if event.pressed and event.is_action("mouse_rueda_arriba"):

#if event.action == "mouse_rueda_arriba":

rotate_x(-0.04)

elif event.pressed and event.is_action("mouse_rueda_avajo"):

#elif event.action == "mouse_rueda_avajo":

rotate_x(0.04)




ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

extends Node3D



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

func _ready() -> void:

$AnimationPlayer.play("Esqueleto|EsqueletoAction")

pass # Replace with function body.



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

func _process(delta: float) -> void:

pass


ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

extends Area3D



# 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



func _on_area_entered(area: Area3D) -> void:

#$"CSGBox3D2ASCENSOR4 puertaabre".play("puertaascensor")

$MeshInstance3D.play("corredera")

pass # Replace with function body.

ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo


extends Area3D



# 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



func _on_area_entered(area: Area3D) -> void:

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

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

extends Area3D



# 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



func _on_area_entered(area: Area3D) -> void:

queue_free()

pass # Replace with function body.

ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

extends Area3D



# 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



func _on_area_entered(area: Area3D) -> void:

$MeshInstance3D/AnimationPlayer.play("CORREDERAS")

pass # Replace with function body.


ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

extends Area3D



# 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



func _on_area_entered(area: Area3D) -> void:

$"../CSGBox3D2ASCENSOR4 puertaabre".play($"../CSGBox3D2ASCENSOR4 puertaabre/AnimationPlayer")

pass # Replace with function body.

ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo








extends Area3D



var Bullet = preload("res://EL PROTAGONISTA/BALA PROYECTIL/PROYECTIL.tscn")

#var Bullet2 = preload("res://EL PROTAGONISTA/FOGONAZO PISTOLA/cpu_particles_3dfogonazo.tscn")



func _ready() -> void:




pass # Replace with function body.






func _input(event):






if event is InputEventMouseButton:




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



#event.button_index == MOUSE_BUTTON_LEFT and event.pressed:


var bullet = Bullet.instantiate()

#var bullet2 = Bullet2.instantiate()


add_child(bullet)

#add_child(bullet2)


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

if event is InputEventMouseButton:



if event.pressed and event.is_action("mouse_rueda_arriba"):

#if event.action == "mouse_rueda_arriba":

rotate_x(-0.02)

elif event.pressed and event.is_action("mouse_rueda_avajo"):

#elif event.action == "mouse_rueda_avajo":

rotate_x(0.02)

pass

oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo



martes, 19 de noviembre de 2024

GDScript aparece y desaparece un nodo; este es de un tipo Node3D; ago efecto de un fantasma;

 extends Node3D


var timer = 0.0

var blink_speed = 0.4  # Ajusta la velocidad de parpadeo


func _process(delta: float) -> void:

timer += delta

if timer >= blink_speed:

timer = 0.0

visible = not visible

MeshInstance3D aparece y desaparece constantemente , GDScript para Godot 4.3;

 extends MeshInstance3D


var timer = 0.0

var blink_speed = 0.4  # Ajusta la velocidad de parpadeo


func _process(delta: float) -> void:

timer += delta

if timer >= blink_speed:

timer = 0.0

visible = not visible

Sencillisimo GDScript, lo que entra dentro de un Area3d, borra todos sus hijos; todo su contenido;

 extends Area3D



# 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



func _on_area_entered(area: Area3D) -> void:

queue_free()

pass # Replace with function body.

Una forma de destruir por tiempo una camara con Godot4.3, echo en GDScript, juego en 3d; y añadi que gire con un rotate_y(0.001);

 extends Camera3D


# Tiempo en segundos antes de autodestruirse

var self_destruct_time = 14.0

var elapsed_time = 0.0


func _process(delta: float) -> void:

elapsed_time += delta

rotate_y(0.001)

if elapsed_time >= self_destruct_time:

queue_free()

Una forma de destruir por tiempo una camara con Godot4.3, echo en GDScript, juego en 3d;

extends Camera3D


# Tiempo en segundos antes de autodestruirse

var self_destruct_time = 14.0

var elapsed_time = 0.0


func _process(delta: float) -> void:

elapsed_time += delta

if elapsed_time >= self_destruct_time:

queue_free()


domingo, 17 de noviembre de 2024

GGDScript borra por tiempo, barra de vida y sus hijos; Ejemplos de barra de vida; Ejemplo asociado a otro objeto que es borrado tambien;

 extends ProgressBar


func _ready() -> void:

value = 0


func _process(delta: float) -> void:

value += 0.01


if value >= 100:

# Recorremos todos los hijos del ProgressBar y los eliminamos

for child in get_children():

child.queue_free()

# Eliminamos el ProgressBar

queue_free()