tag:blogger.com,1999:blog-56997748094208934702024-03-28T08:29:02.962+01:00Desarrollo y creacion de videojuegos.Godot,Unity,Blender,Gimp,Game Maker,Godot, scripts para Godot estudios y aprendizajes,
Creacion de videojuegos.
Creacion y publicacion de videojuegos en internet.
Como hacer videojuegos.
C# unity.
Animaciones unity blender.
Personajes videojuegos graficos dibujos.
Diseño grafico.
Comic.
Animaciones gif.
Dibujo de retratos.
Realidad virtual.
Cine y realidad virtual.videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.comBlogger472125tag:blogger.com,1999:blog-5699774809420893470.post-29907005215871638682024-03-27T19:41:00.004+01:002024-03-27T19:41:33.059+01:00SCRIPT PARA GODOT 4.2 CUANDO TOCA UN AREA3D EL PLAYER CAMBIA SU ANIMACION Y PRODUCE UN SONIDO;<p> extends Area3D</p><p><br /></p><p><br /></p><p># Called when the node enters the scene tree for the first time.</p><p>func _ready():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></p><p><br /></p><p><br /></p><p># Called every frame. 'delta' is the elapsed time since the previous frame.</p><p>func _process(delta):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass</span></p><p><br /></p><p><br /></p><p>func _on_area_entered(area):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$"../AnimationPlayer".play("EXPLOTA")</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$"../AnimationPlayer/AudioStreamPlayer3D".play()</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></p><div><br /></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-56377603587167392212024-03-26T19:52:00.008+01:002024-03-27T08:12:49.907+01:00Una forma de audio para godot 4.2; Script gdscript; pulsando boton del mouse y soltando;<p> extends AnimationPlayer</p><p><br /></p><p>var audio_stream: AudioStream</p><p><br /></p><p>func _ready():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>audio_stream = load("res://EL SONIDO/RUJEScorto.ogg")</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>var audio_player = AudioStreamPlayer.new()</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>audio_player.stream = audio_stream</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>add_child(audio_player)</span></p><p><br /></p><p>#func _on_AnimationPlayer_input_event(event):</p><p>func _input(event):</p><p><br /></p><p><br /></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event is InputEventMouseButton:</span></p><p><br /></p><p><br /></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event.button_index == 1:</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AudioStreamPlayer3D.play()</span></p><p><span style="white-space: normal;"><br /></span></p><p><span style="white-space: normal;"><br /></span></p><p><span style="white-space: normal;">---------------------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">---------------------------------------------------------------------------------------------------------------------</span></p><p>En el script de devajo al soltar la pulsacion se detiene el sonido , el script inferior es correcto....</p><p>---------------------------------------------------------------------------------------------</p><p>--------------------------------------------------------------------------------------------------</p><p>extends AnimationPlayer</p><p><br /></p><p>var audio_stream: AudioStream</p><p><br /></p><p>func _ready():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>audio_stream = load("res://EL SONIDO/RUJEScorto.ogg")</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>var audio_player = AudioStreamPlayer.new()</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>audio_player.stream = audio_stream</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>add_child(audio_player)</span></p><p><br /></p><p>func _input(event):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event is InputEventMouseButton:</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event.button_index == 1: # Botón izquierdo del mouse</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event.pressed:</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AudioStreamPlayer3D.play() # Reproduce el sonido al presionar</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>else:</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AudioStreamPlayer3D.stop() # Detiene el sonido al soltar</span></p><div><br /></div><div><br /></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-53078029325241929702024-03-25T13:42:00.003+01:002024-03-25T13:42:46.355+01:00Script para godot 4.2 para que cuando algo toque una rueda esta gire;<p> extends MeshInstance3D</p><p><br /></p><p><br /></p><p># Called when the node enters the scene tree for the first time.</p><p>func _ready():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></p><p><br /></p><p><br /></p><p># Called every frame. 'delta' is the elapsed time since the previous frame.</p><p>func _process(delta):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass</span></p><p><br /></p><p>func _on_area_3d_area_entered(area):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>rotate_y(2.5)</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></p><div>-------------------------------------------------------------------------------------------------------------------------</div><div>--------------------------------------------------------------------------------------------------------------------------</div><div>Explicacion:</div><div> partiendo de un nodo MeshInstance3D con hijo un Area3d y un nieto CollisionShape3D cuando algo toca el CollisionShape3D el MeshInstance3D gira, el script lo tiene el MeshInstance3D y la señal el Area3d......</div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-11238738642619375122024-03-19T08:23:00.004+01:002024-03-19T08:41:14.253+01:00Scripts para Godot 4.2 que instancia una sola vez; por mouse y por temporizador ; y repetitivamente;<p> extends Area3D</p><p><br /></p><p>var Bullet = preload("res://ESCENAS/player.tscn")</p><p>var has_fired = false</p><p><br /></p><p>func _ready():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass</span></p><p><br /></p><p>func _input(event):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event is InputEventMouseButton && !has_fired:</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event.button_index == 1:</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>var bullet = Bullet.instantiate()</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>add_child(bullet)</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>has_fired = true</span></p><p><span style="white-space: normal;"><br /></span></p><p><span style="white-space: normal;">----------------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">----------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">El de abajo instancia cada vez que se presiona boton del mouse</span></p><p><span style="white-space: normal;">------------------------------------------------------------------------------------------------</span></p><p>extends Area3D</p><p><br /></p><p>var Bullet = preload("res://ESCENAS/player.tscn")</p><p><br /></p><p>func _ready():</p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></p><p><br /></p><p><br /></p><p>func _input(event):</p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event is InputEventMouseButton:</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event.button_index == 1:</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>var bullet = Bullet.instantiate()</span></p><p><br /></p><p><br /></p><p></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>add_child(bullet)</span></p><div>--------------------------------------------------------------------------------------------------------</div><div>-----------------------------------------------------------------------------------------------------------</div><div>instancia ahora por tiempo a los 2 segundos transcurridos constantemente</div><div>-------------------------------------------------------------------------------------------------------</div><div><br /></div><div><div>extends Area3D</div><div><br /></div><div>var Bullet = preload("res://ESCENAS/player.tscn")</div><div><br /></div><div>func _ready():</div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span># Iniciar un temporizador</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>$Timer.start(2.0)</span></div><div><br /></div><div>#func _on_Timer_timeout():</div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span># Instanciar la bala después de 2 segundos</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>#var bullet = Bullet.instantiate()</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>#add_child(bullet)</span></div><div><br /></div><div><br /></div><div>func _on_timer_timeout():</div><div><span style="white-space: normal; white-space: pre;"> </span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>var bullet = Bullet.instantiate()</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>add_child(bullet)</span></div></div><div>------------------------------------------------------------------------------------------------------------------</div><div>----------------------------------------------------------------------------------------------------------------</div><div>Instancia una sola vez por tiempo al pasar 2 segundos</div><div>-------------------------------------------------------------------------------------------------------------------</div><div><div><br /></div><div>extends Area3D</div><div><br /></div><div>var Bullet = preload("res://ESCENAS/player.tscn")</div><div><br /></div><div>var has_fired = false</div><div><br /></div><div>func _ready():</div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span># Iniciar un temporizador</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>$Timer.start(2.0)</span></div><div><br /></div><div>#func _on_Timer_timeout():</div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span># Instanciar la bala después de 2 segundos</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>#var bullet = Bullet.instantiate()</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>#add_child(bullet)</span></div><div><br /></div><div><br /></div><div>func _on_timer_timeout():</div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>if not has_fired:</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>var bullet = Bullet.instantiate()</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>add_child(bullet)</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>has_fired = true</span></div></div><div><br /></div><div><br /></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-11746472586853490912024-03-14T17:02:00.003+01:002024-03-14T17:02:11.237+01:00Brothel for retired women, juego echo con Godot 4.2 en 3dimensiones;<p> </p><iframe frameborder="0" src="https://itch.io/embed/2583927" width="552" height="167"><a href="https://perico415.itch.io/brothel-for-retired-women">Brothel for retired women. by perico415</a></iframe>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-82322752463135888912024-03-14T08:33:00.003+01:002024-03-14T08:33:13.773+01:00CSGCylinder3D APARECE DESAPARECE CADA 0.25 SEGUNDOS;<p> extends CSGCylinder3D</p><p><br /></p><p>var tiempo_transcurrido: float = 0.0 # Tiempo transcurrido desde el último cambio de estado</p><p><br /></p><p>func _physics_process(delta):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Acumular el tiempo transcurrido</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>tiempo_transcurrido += delta</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Cambiar la visibilidad del CSGCylinder3D cada 0.25 segundos</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if tiempo_transcurrido >= 0.25:</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>visible = !visible # Invertir el estado actual de la visibilidad</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>tiempo_transcurrido = 0.0</span></p><div><br /></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-26027675485021645772024-03-14T08:20:00.003+01:002024-03-14T08:20:34.579+01:00Script GDScript completo en español para encender y apagar una luz cada 0.25 segundos;<p> extends OmniLight3D</p><p><br /></p><p>var tiempo_transcurrido: float = 0.0 # Tiempo transcurrido desde el último cambio de estado</p><p><br /></p><p>func _physics_process(delta):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Acumular el tiempo transcurrido</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>tiempo_transcurrido += delta</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Cambiar el estado de la luz cada 0.25 segundos</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if tiempo_transcurrido >= 0.25:</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>visible = !visible # Invertir el estado actual de la luz</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>tiempo_transcurrido = 0.0</span></p><p><br /></p>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-6879301415821187772024-03-13T14:15:00.003+01:002024-03-13T14:15:36.255+01:00Script en GDScript godot 4.2 3 dimensiones Animacion la aga 1 sola vez y se pare cuando llege al ultimo digamos fps o fotograma;<p> extends Node3D</p><p><br /></p><p># Variable para controlar si la animación ya se ha reproducido</p><p>var animacion_reproducida = false</p><p><br /></p><p># Llamado cuando el nodo entra al árbol de escena por primera vez.</p><p>func _ready():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Mantenemos esta parte sin cambios</span></p><p><br /></p><p># Llamado cada frame. 'delta' es el tiempo transcurrido desde el frame anterior.</p><p>func _process(delta):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Si la animación no se ha reproducido aún</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if not animacion_reproducida:</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Reproducimos la animación "MUERTASEPONEPIE"</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("MUERTASEPONEPIE")</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Establecemos la variable a true para indicar que ya se reprodujo</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_reproducida = true</span></p><div><br /></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-70876753948009915712024-03-10T12:54:00.001+01:002024-03-10T12:54:09.726+01:00Cambiar el icono de tu juego compilado con resource_hacker;<p> Me vuelto loco toda la mañana para poder cambiar el icono de mi exe de mi juego, personalizar los iconos es posible con Godot 4.2, cada maestrillo tiene su librillo, yo ayudandome de gimp y de resource_hacker, consigo personalizar mi icono del juego, ....</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTWbnx7JxjOO-lgOw_F-DRxGrDxb9I5qu9dBiD1KBvmfpEK0B8_W4kshD0j3behb6Bh6AaQ7SJtmf8C8KQwg83kYQE02-xCnTlPjCHazyt1Nfi30mutYBqxQFmjIxvGUmbSXkjWu9Z-WZger6yGObt1f_8j2aS60cc2A0F5X41qf_6A6CWG1oFRXRG5_sf/s1920/cambiar%20icono%201.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTWbnx7JxjOO-lgOw_F-DRxGrDxb9I5qu9dBiD1KBvmfpEK0B8_W4kshD0j3behb6Bh6AaQ7SJtmf8C8KQwg83kYQE02-xCnTlPjCHazyt1Nfi30mutYBqxQFmjIxvGUmbSXkjWu9Z-WZger6yGObt1f_8j2aS60cc2A0F5X41qf_6A6CWG1oFRXRG5_sf/w640-h360/cambiar%20icono%201.jpg" width="640" /></a></div><br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM29rikzKtOunxdIFoo-Gdw5vb7It0s2vKjolAxcHRedNkbCcTzGOL9WG5qJc71MfHvCOxILTkVD9L0nb-b4KRXywK9zgu6nMYFwsiF1zOQ8rEBAdgVDQScRR-qk_hecEGGzahjDuPjzifJ-WgzMOdRkFIPARF4_UE-m-HHuGBuAAIoHqOuROWjwUJBvMC/s1920/cambiar%20icono%202.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhM29rikzKtOunxdIFoo-Gdw5vb7It0s2vKjolAxcHRedNkbCcTzGOL9WG5qJc71MfHvCOxILTkVD9L0nb-b4KRXywK9zgu6nMYFwsiF1zOQ8rEBAdgVDQScRR-qk_hecEGGzahjDuPjzifJ-WgzMOdRkFIPARF4_UE-m-HHuGBuAAIoHqOuROWjwUJBvMC/w640-h360/cambiar%20icono%202.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYue2uiD9ptuh0NU9rX49hVZduKHrKtJT6R9rOBZlLeh1oCG960jeV1bgtCfJiQweQLgRLyQKqcP7LQHlBDyRuaW-LlZ_Hi7Jp2vs397zAry4a9YVOFfjiuMT0DVebKCf-3iWPqraL2tQer7aHbQ8fDJ48yY-V8-b_YQo_wmFyYe89wzi8J616nV9BtJQc/s1920/cambiar%20icono%203.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYue2uiD9ptuh0NU9rX49hVZduKHrKtJT6R9rOBZlLeh1oCG960jeV1bgtCfJiQweQLgRLyQKqcP7LQHlBDyRuaW-LlZ_Hi7Jp2vs397zAry4a9YVOFfjiuMT0DVebKCf-3iWPqraL2tQer7aHbQ8fDJ48yY-V8-b_YQo_wmFyYe89wzi8J616nV9BtJQc/w640-h360/cambiar%20icono%203.jpg" width="640" /></a><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUsiJ-XSajQxIrtUjNHjEP_OL56NTUXK2BKjMn7i40PTYyeSIeQ7cfF53UuP7fkChCUYK_u-Xm81_uQGslfS1i9LsyY7lakvmtgcg4RbB2vbnykEF3QBJdVSXZlFXHkaTtausWDEkF0PR8bPzby2QP7fwMBQodxaxnw8HIYU8U7SabtTcAsr4FhwZapDRm/s1920/cambiar%20icono%204.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUsiJ-XSajQxIrtUjNHjEP_OL56NTUXK2BKjMn7i40PTYyeSIeQ7cfF53UuP7fkChCUYK_u-Xm81_uQGslfS1i9LsyY7lakvmtgcg4RbB2vbnykEF3QBJdVSXZlFXHkaTtausWDEkF0PR8bPzby2QP7fwMBQodxaxnw8HIYU8U7SabtTcAsr4FhwZapDRm/w640-h360/cambiar%20icono%204.jpg" width="640" /></a></div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMYwSNzcMeNjGmYNv6S_tgn5PiERj7sYjRGV6pp3_dKQjraqbxbMYbAxLyF8Yw_0-roSifmpEmP5XlXOWuMRiZl2O-fXcqN4oeMhSfALR-L8o8icMZqMSFeB2uTDRq93iMdwPVw97JQy1Jryphx-m0tsrxyiUuBk0xsd2_9s6RDDzFCiUk7ZxwwBKd17Uk/s1920/cambiar%20icono%205.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMYwSNzcMeNjGmYNv6S_tgn5PiERj7sYjRGV6pp3_dKQjraqbxbMYbAxLyF8Yw_0-roSifmpEmP5XlXOWuMRiZl2O-fXcqN4oeMhSfALR-L8o8icMZqMSFeB2uTDRq93iMdwPVw97JQy1Jryphx-m0tsrxyiUuBk0xsd2_9s6RDDzFCiUk7ZxwwBKd17Uk/w640-h360/cambiar%20icono%205.jpg" width="640" /></a></div><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtSlOOgK2qxo76L-4oxhgwvvTHf3brfSfivUUIUlreodtb3pNQJhKVe5y5XLuQPBBlKaHp-h0IbhY45GwWnCCsMzqBogy-oq0Y_vBsnoI6dHK9XKey4O_A-hExDCrn0FxZmptQeS0c4j8GjINw_Ng8CfY8fbSggPZbnIoRsD0vFgNmix1l3qkq9B5qFnje/s1920/cambiar%20icono%206.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtSlOOgK2qxo76L-4oxhgwvvTHf3brfSfivUUIUlreodtb3pNQJhKVe5y5XLuQPBBlKaHp-h0IbhY45GwWnCCsMzqBogy-oq0Y_vBsnoI6dHK9XKey4O_A-hExDCrn0FxZmptQeS0c4j8GjINw_Ng8CfY8fbSggPZbnIoRsD0vFgNmix1l3qkq9B5qFnje/w640-h360/cambiar%20icono%206.jpg" width="640" /></a><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_62P5AbF40NvC29v-iSj1Jv9WO5wfT5F9L7TaQEw6SriYq0nlYQqDgdh5vj-Tsu7l8liiQPTT_TWdLwwwGRvkkJVCLzD0lpoF8nz_y15vc8AyxrWCniJL0_iDYDqcBI1symZfc08z_JwzDuadmMdLqhr0IiUPtFztIM6hRjafbyMTe8G_V48p13Oj2zsD/s1920/cambiar%20icono%207.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_62P5AbF40NvC29v-iSj1Jv9WO5wfT5F9L7TaQEw6SriYq0nlYQqDgdh5vj-Tsu7l8liiQPTT_TWdLwwwGRvkkJVCLzD0lpoF8nz_y15vc8AyxrWCniJL0_iDYDqcBI1symZfc08z_JwzDuadmMdLqhr0IiUPtFztIM6hRjafbyMTe8G_V48p13Oj2zsD/w640-h360/cambiar%20icono%207.jpg" width="640" /></a></div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6JlNgd2lCkB2ZZ7XbK-fsjINauST4qDJcBj88NRt_jLNZ4C4h8ZFbxcDiEB9_OcXEkMOpZDPHBUacPujOwgVR921D7Oe4c0JrmxjYZJW1dasxkoj351whFJCTb1HrKh7f3QRsxXIVe8KF-NMw37_UZhz1l6JznfgQoZHRrYVaEu8yHTZ8o3XxKxlDExwG/s1920/cambiar%20icono%208.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6JlNgd2lCkB2ZZ7XbK-fsjINauST4qDJcBj88NRt_jLNZ4C4h8ZFbxcDiEB9_OcXEkMOpZDPHBUacPujOwgVR921D7Oe4c0JrmxjYZJW1dasxkoj351whFJCTb1HrKh7f3QRsxXIVe8KF-NMw37_UZhz1l6JznfgQoZHRrYVaEu8yHTZ8o3XxKxlDExwG/w640-h360/cambiar%20icono%208.jpg" width="640" /></a></div><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA9ORvGs1ALgxLKKNYTNR3yFq7cF5rtU4EpFZN2c0EscsVehBhJbgy5PurgZ3BxgBWgtlSQ-Q7crIn1C49qxeJqNRnoi-Ro_hDV2r5bkeA_CjQZb9nIFSPy90Yi2i0Ru0N83znDKlgpPkW9X6COFfXNBAg8lql5TwV0CR-XGhRuejbB6g8Ek_D7AeqpPKV/s1920/cambiar%20icono%209.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA9ORvGs1ALgxLKKNYTNR3yFq7cF5rtU4EpFZN2c0EscsVehBhJbgy5PurgZ3BxgBWgtlSQ-Q7crIn1C49qxeJqNRnoi-Ro_hDV2r5bkeA_CjQZb9nIFSPy90Yi2i0Ru0N83znDKlgpPkW9X6COFfXNBAg8lql5TwV0CR-XGhRuejbB6g8Ek_D7AeqpPKV/w640-h360/cambiar%20icono%209.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhukmtcp-YOCAIEuS0ITMtXvNB7ih_EYtNf7W6US8X6ZT6_QqQjt4G8YssK0EwQjbRpzbrwUXMTyr2i1WPudGNrONwNF6c6HcgCeQSIHs9wUdhAf06e2n9nm4wtzCjFvDNdn5IIAUTdtMbyNIQ_-zA0WBmN5siBlDXYKUn-o5s-FprjWoaMp7J37FNgXj2Q/s1920/cambiar%20icono%2010.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhukmtcp-YOCAIEuS0ITMtXvNB7ih_EYtNf7W6US8X6ZT6_QqQjt4G8YssK0EwQjbRpzbrwUXMTyr2i1WPudGNrONwNF6c6HcgCeQSIHs9wUdhAf06e2n9nm4wtzCjFvDNdn5IIAUTdtMbyNIQ_-zA0WBmN5siBlDXYKUn-o5s-FprjWoaMp7J37FNgXj2Q/w640-h360/cambiar%20icono%2010.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2NB9PRA01b6yzwfgVvw8ysHVKKnwJ0LcMwLYF1czNtJJ2H2ORw_DYcBJn5KxC1oNpz6e-M0pWV0SddB507UYKgfKCY3yPcq7dVGC784afvA1En6Hd4QU-4WBh_9cHN9U8PNuh1Y_wKuQftfJ3BsYsUk2N_CSquqFstD-Z-mgTAyYJZ41ErtzRO2JVDW0j/s1920/cambiar%20icono%2011.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2NB9PRA01b6yzwfgVvw8ysHVKKnwJ0LcMwLYF1czNtJJ2H2ORw_DYcBJn5KxC1oNpz6e-M0pWV0SddB507UYKgfKCY3yPcq7dVGC784afvA1En6Hd4QU-4WBh_9cHN9U8PNuh1Y_wKuQftfJ3BsYsUk2N_CSquqFstD-Z-mgTAyYJZ41ErtzRO2JVDW0j/w640-h360/cambiar%20icono%2011.jpg" width="640" /></a></div><br />videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-44774181042894440662024-03-09T13:05:00.011+01:002024-03-09T13:15:46.402+01:00Luces de neon con Godot 4.2 muy facil;<p> </p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="450" src="https://www.youtube.com/embed/uTWDrZtymp4" width="541" youtube-src-id="uTWDrZtymp4"></iframe><span><span style="color: #fcff01;">En el video muestro como hacer luces de neon en godot 4.2 es secillisimo, solo hay que poner un <code style="border-radius: 6px; color: var(--bard-color-on-surface-variant); font-family: "Google Sans Mono", monospace; font-size: 0.875rem; line-height: 1.25rem; padding: 1px 6px; text-align: left;">StandardMaterial3D</code></span><code style="background-color: white; border-radius: 6px; color: #7f6000; font-size: 16px; line-height: 1.25rem; padding: 1px 6px; text-align: left;"><span face="Google Sans, Helvetica Neue, sans-serif"> luego en </span></code><code style="border-radius: 6px; color: var(--bard-color-on-surface-variant); font-family: "Google Sans Mono", monospace; font-size: 0.875rem; line-height: 1.25rem; padding: 1px 6px; text-align: left;"><span style="color: #fcff01;">Albedo</span></code><span face=""Google Sans", "Helvetica Neue", sans-serif" style="background-color: white; color: #7f6000; font-size: 16px; text-align: left;">, selecciona un color blanco puro (RGB 255, 255, 255).</span></span></div><div class="separator" style="clear: both; text-align: center;"><span face=""Google Sans", "Helvetica Neue", sans-serif" style="background-color: white; font-size: 16px; text-align: left;"><br /></span></div><div class="separator" style="clear: both; text-align: center;"><span face=""Google Sans", "Helvetica Neue", sans-serif" style="background-color: white; color: #2b00fe; font-size: 16px; text-align: left;">u otro color y . </span><span face=""Google Sans", "Helvetica Neue", sans-serif" style="background-color: white; color: #2b00fe; font-size: 16px; text-align: left;">Para aumentar la luminosidad, puedes ajustar la propiedad </span><code style="border-radius: 6px; color: var(--bard-color-on-surface-variant); font-family: "Google Sans Mono", monospace; font-size: 0.875rem; line-height: 1.25rem; padding: 1px 6px; text-align: left;"><span style="color: #fcff01;">Emission</span></code><span face=""Google Sans", "Helvetica Neue", sans-serif" style="background-color: white; color: #2b00fe; font-size: 16px; text-align: left;"> a un valor superior a 0.</span></div><p></p><ul data-sourcepos="18:1-20:0" style="background-color: white; font-family: "Google Sans", "Helvetica Neue", sans-serif; font-size: 16px; margin: 4px 0px; padding-inline-start: 1.125rem;"><li data-sourcepos="18:1-18:46" style="margin-bottom: 0px;"><span style="color: #2b00fe;">Aumenta la intensidad de la luz <code style="background-color: var(--bard-color-surface-container-high); border-radius: 6px; color: var(--bard-color-on-surface-variant); font-family: "Google Sans Mono", monospace; font-size: 0.875rem; line-height: 1.25rem; padding: 1px 6px;">OmniLight</code>.</span></li><li data-sourcepos="19:1-20:0" style="margin-bottom: 0px;"><span style="color: #2b00fe;"><span style="font-weight: 700;">(Opcional)</span> Puedes agregar un segundo <code style="background-color: var(--bard-color-surface-container-high); border-radius: 6px; color: var(--bard-color-on-surface-variant); font-family: "Google Sans Mono", monospace; font-size: 0.875rem; line-height: 1.25rem; padding: 1px 6px;">OmniLight</code> con un color ligeramente diferente para crear un efecto de brillo más complejo.</span></li></ul><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #04ff00;"><br /></span></div><div><span face="Google Sans, Helvetica Neue, sans-serif" style="color: #04ff00;">Esta base es muy muy buena y se puede mejorar aun mas pero de momento y para llevar apenas 4 meses no llega aprendiendo Godot 4.2 estoy muy pero que muy satisfecho, Godot 4.2 es alucinante cuando empieza a conocerse su funcionamiento.....</span></div><p><br /></p><div class="separator" style="clear: both; text-align: center;"></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-36960394218273712452024-03-09T12:58:00.002+01:002024-03-09T12:58:13.940+01:00Configurar sonido de cercania y de lejania con godot 4.2;<p> </p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="423" src="https://www.youtube.com/embed/PtHm2wwSdxU" width="509" youtube-src-id="PtHm2wwSdxU"></iframe></div><div class="separator" style="clear: both; text-align: center;">He conseguido con mucha facilidad que el player oiga algo cuando lo tiene que oir, osea cerca de donde se produce un sonido ,y cuando esta lejos lo deja de oir........</div><div class="separator" style="clear: both; text-align: center;">no explico mucho mas de momento con el video ya se puede aprender el funcionamiento, solo hay que manipular una varra y poner un numero inferior a 1, y asi medimos las distancias.........</div><br /><p></p>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-35312365500298921402024-03-06T18:21:00.003+01:002024-03-06T18:21:55.982+01:00SCRIPT EN GDSCRIPT PARA GODOT4.2 3D PARA TRASLADAR SUAVEMENTE POR EJE "Y" ;<p> extends MeshInstance3D</p><p><br /></p><p><br /></p><p>var speed = 0.2 # Unidades por segundo</p><p><br /></p><p>#var tiempo_transcurrido = 0.0 # Tiempo en segundos</p><p><br /></p><p><br /></p><p><br /></p><p># Función que se ejecuta en cada frame</p><p><br /></p><p>func _process(delta):</p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Calcular movimiento basado en la velocidad y el tiempo delta</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>var movimiento = Vector3(0, speed * delta, 0)</span></p><p><br /></p><p><br /></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Aplicar el movimiento a la posición del nodo</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>translate(movimiento)</span></p><div><br /></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-27042376190860639172024-03-06T08:43:00.003+01:002024-03-06T08:43:47.810+01:00Ejemplo de cambiar de escena con Godot 4.2 3d;<p> extends Node</p><p><br /></p><p>func _on_Area3D_body_entered(body: Node):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if body.name == "Player":</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Cambiar a la siguiente escena.</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>get_tree().change_scene("res://Escena_2.tscn")</span></p><p>-------------------------------------------------------------------------------------------------------------------------</p><p>--------------------------------------------------------------------------------------------------------------------</p><p>notas: </p><h2 _ngcontent-ng-c3601258271="" class="query-text ng-star-inserted" dir="ltr" style="background-color: white; color: #1f1f1f; font-family: "Google Sans", "Helvetica Neue", sans-serif; font-size: 1rem; font-weight: 400; line-height: 1.5rem; margin-block: 0px; padding-top: 5px; white-space-collapse: preserve;">un script para godot 4.2 3d en el que hay 2 escenas, en una el player pasa por un area3d y al tocar esa area se cambia a la escena siguiente, el player tiene su propio colider, y el area3d tambien, para que detecte las colisiones, hazlo simple, explica en español, y si es posible que use solo la memoria que gaste cada escena .....................</h2><div>Consultado a la IA, me a echo el script de arriba pero aun e de probarlo y razonarlo, de todas formas lo pongo en el blog porque es un script muy corto....ya lo estudiare y lo ratificare mas adelante.........</div><div><br /></div><div><br /></div><div>LO QUE ME EXPLICA LA IA: </div><div><br /></div><div><p data-sourcepos="38:1-38:27" style="background-color: white; color: #1f1f1f; font-family: "Google Sans", "Helvetica Neue", sans-serif; font-size: 16px; margin: 1rem 0px; white-space-collapse: preserve; word-break: break-word;"><span style="font-weight: 700;">Explicación del script:</span></p><ul data-sourcepos="40:1-44:0" style="background-color: white; color: #1f1f1f; font-family: "Google Sans", "Helvetica Neue", sans-serif; font-size: 16px; margin: 4px 0px; padding-inline-start: 1.125rem;"><li data-sourcepos="40:1-40:91" style="margin-bottom: 0px;"><code style="background-color: var(--bard-color-surface-container-high); border-radius: 6px; color: var(--bard-color-on-surface-variant); font-family: "Google Sans Mono", monospace; font-size: 0.875rem; line-height: 1.25rem; padding: 1px 6px;">_on_Area3D_body_entered</code> es una función que se llama cuando un nodo entra en el área 3D.</li><li data-sourcepos="41:1-41:46" style="margin-bottom: 0px;"><code style="background-color: var(--bard-color-surface-container-high); border-radius: 6px; color: var(--bard-color-on-surface-variant); font-family: "Google Sans Mono", monospace; font-size: 0.875rem; line-height: 1.25rem; padding: 1px 6px;">body</code> es el nodo que ha entrado en el área.</li><li data-sourcepos="42:1-42:64" style="margin-bottom: 0px;">Se comprueba si el nombre del nodo que ha entrado es "Player".</li><li data-sourcepos="43:1-44:0" style="margin-bottom: 0px;">Si se cumple la condición, se cambia a la escena "Escena_2.tscn".</li></ul><p data-sourcepos="45:1-45:31" style="background-color: white; color: #1f1f1f; font-family: "Google Sans", "Helvetica Neue", sans-serif; font-size: 16px; margin: 1rem 0px; white-space-collapse: preserve; word-break: break-word;"><span style="font-weight: 700;">4. Optimización de memoria:</span></p><ul data-sourcepos="47:1-49:0" style="background-color: white; color: #1f1f1f; font-family: "Google Sans", "Helvetica Neue", sans-serif; font-size: 16px; margin: 4px 0px; padding-inline-start: 1.125rem;"><li data-sourcepos="47:1-47:197" style="margin-bottom: 0px;"><span style="font-weight: 700;">Utilizar la carga diferida de escenas:</span> Puedes configurar la carga diferida para las escenas que no se necesitan de inmediato. Esto reduce la cantidad de memoria utilizada al inicio del juego.</li><li data-sourcepos="48:1-49:0" style="margin-bottom: 0px;"><span style="font-weight: 700;">Eliminar objetos no utilizados:</span> Elimina los objetos que ya no sean necesarios de la escena para liberar memoria.</li><li data-sourcepos="48:1-49:0" style="margin-bottom: 0px;">------------------------------------------------------------------------------------------------------------------------</li><li data-sourcepos="48:1-49:0" style="margin-bottom: 0px;">-------------------------------------------------------------------------------------------------------------------------</li><li data-sourcepos="48:1-49:0" style="margin-bottom: 0px;">NOTAS: la IA me ayuda un monton pero hay que saber razonarlo y aplicarlo, mas adelante usare y probare esta informacion.....de mientras miro tutoriales de youtube....cuanta mas informacion y mas practicas y mas se trabaje el tema mas pronto se aprende.</li></ul></div><div><br /></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-83081627127245716612024-03-04T13:27:00.003+01:002024-03-12T19:10:58.695+01:00Otra forma de borrar un label trancurrido tiempo con Godot4.2; y siempre ayudandome de una IA; tambien borrar un RigidBody3D;<p> extends Label</p><p><br /></p><p>var tiempo_de_vida = 3.0 # Duración en segundos antes de eliminar el Label</p><p><br /></p><p>func _ready():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Obtener el Label que queremos usar</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>var label_tiempo_vida = $"."</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Mostrar el texto del Label en este Label</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>text = label_tiempo_vida.text</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Iniciar el temporizador</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$Timer.start(tiempo_de_vida)</span></p><p><br /></p><p>func _on_timer_timeout():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Eliminar el Label</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>queue_free()</span></p><p><br /></p><p>func _process(delta):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Si el tiempo de vida ha llegado a 0, eliminar el Label</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if tiempo_de_vida <= 0:</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>_on_timer_timeout()</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>return</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Reducir el tiempo de vida en cada frame</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>tiempo_de_vida -= delta</span></p><p><span style="white-space: normal;"><br /></span></p><p><span style="white-space: normal;"><br /></span></p><p><span style="white-space: normal;">------------------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">explicacion: en esta linea--------</span></p><p><span style="white-space: normal;"> </span>func _ready():</p><p><span style="white-space: pre;"> </span># Obtener el Label que queremos usar<span style="white-space: normal;"> </span></p><p><span style="white-space: normal;"> </span>var label_tiempo_vida = $"." --------</p><p><br /></p><p><br /></p><p>- e arrastrado mi label desde la escena, eso lo razone yo, es indispensable si no se sabe programar como es mi caso, la ayuda de una IA, es como si trabajases con un amigo , la IA es una cosa tremenda, en un primer script la IA me ponia esta linea de codigo , por esta otra-------</p><p><br /></p><p>func _ready():</p><p><span style="white-space: pre;"> </span># Mostrar el texto</p><p><span style="white-space: pre;"> </span>text = "W-A-S-D Y MOUSE BOTONES " + str(tiempo_de_vida) + " segundos."</p><p><br /></p><p>Escribia el texto directamente, pero a mi me interesaba arrastrar desde la escena el label que ya tenia preparado........y lo e conseguido, fantastico¡¡¡¡¡</p><p><br style="background-color: #333333; color: #cccccc; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px;" /></p><div>-----------------------------------------------------------------------------------------------</div><div>----------------------------------------------------------------------------------------------</div><div><br /></div><div><br /></div><div>OTRO EJEMPLO DE BORRAR POR TIEMPO UN RigidBody3D</div><div><br /></div><div><br /></div><div>----------------------------------------------------------------------------------------------</div><div><br /></div><div><div>extends RigidBody3D</div><div><br /></div><div><br /></div><div><br /></div><div>var tiempo_de_vida = 2.5 # Duración en segundos antes de eliminar la piedra</div><div><br /></div><div>func _ready():</div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span># Iniciar temporizador</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>$Timer.start(tiempo_de_vida)</span></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>func _on_timer_timeout():</div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>queue_free()</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></div></div><div><br /></div><div><br /></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-62382107395131669552024-03-04T13:07:00.006+01:002024-03-04T13:07:56.307+01:00Una forma de borrar un label en godot4.2 transcurrido un tiempo;<p> extends Label</p><p><br /></p><p>var tiempo_de_vida = 12.5 # Duración en segundos antes de eliminar el Label</p><p><br /></p><p>func _ready():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Mostrar el texto</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>text = "W-A-S-D Y MOUSE BOTONES " + str(tiempo_de_vida) + " segundos."</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Iniciar el temporizador</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$Timer.start(tiempo_de_vida)</span></p><p><br /></p><p>func _on_timer_timeout():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Eliminar el Label</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>queue_free()</span></p><p><br /></p><p>func _process(delta):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Si el tiempo de vida ha llegado a 0, eliminar el Label</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if tiempo_de_vida <= 0:</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>_on_timer_timeout()</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>return</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Reducir el tiempo de vida en cada frame</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>tiempo_de_vida -= delta</span></p><p><br /></p>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-58867096848109898902024-03-02T08:34:00.003+01:002024-03-02T08:34:35.814+01:00Futuro proyecto con godot 4.2 en 3d;<p> </p><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="414" src="https://www.youtube.com/embed/2EwqpE-iMgY" width="555" youtube-src-id="2EwqpE-iMgY"></iframe><span style="font-size: large;">Con lo que boy aprendiendo y practicando, muestro una captura de video de mi proximo proyecto........</span></div><br /><p></p>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-47378094339563113152024-02-29T11:08:00.005+01:002024-02-29T11:08:36.051+01:00GDScript para godot4.2 3d movimiento continuo de un area3d y que a los 2 segundos se borra;<p> extends Area3D</p><p><br /></p><p>var speed = 15 # Unidades por segundo</p><p>var tiempo_transcurrido = 0.0 # Tiempo en segundos</p><p><br /></p><p># Función que se ejecuta en cada frame</p><p>func _process(delta):</p><p> # Calcular movimiento basado en la velocidad y el tiempo delta</p><p> var movimiento = Vector3(speed * delta, 0, 0)</p><p><br /></p><p> # Aplicar el movimiento a la posición del nodo</p><p> translate(movimiento)</p><p><br /></p><p> # Actualizar el tiempo transcurrido</p><p> tiempo_transcurrido += delta</p><p><br /></p><p> # Eliminar el nodo después de 2 segundos</p><p> if tiempo_transcurrido >= 2.0:</p><p> queue_free()</p><p><br /></p>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-23476440145299297912024-02-29T11:01:00.007+01:002024-02-29T11:01:36.646+01:00GDSCRIPT PARA GODOT 4.2 3D MOVIMIENTO CONTINUO LATERAL;<p> extends Area3D</p><p><br /></p><p>var speed = 15 # Unidades por segundo</p><p><br /></p><p># Función que se ejecuta en cada frame</p><p>func _process(delta):</p><p> # Calcular movimiento basado en la velocidad y el tiempo delta</p><p> var movimiento = Vector3(speed * delta, 0, 0)</p><p><br /></p><p> # Aplicar el movimiento a la posición del nodo</p><p> translate(movimiento)</p><div><br /></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-11093967879834542272024-02-29T09:31:00.002+01:002024-02-29T09:32:57.510+01:00GDScript para Godot4.2 3d animacion elavorada con explicacion del GDScript;<p> extends Node3D</p><p><br /></p><p>var animacion_actual = "ANDAR"</p><p><br /></p><p>func _ready():</p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></p><p><br /></p><p><br /></p><p>func _input(event):</p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event is InputEventMouseButton:</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event.button_index == 1:</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>#if animacion_actual != "CHISPA":</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("CHISPA")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "CHISPA"</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Acción del motor del juego</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>#elif Input.is_action_pressed("ui_up"):</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event is InputEventMouseButton:</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event.button_index == 2:</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>#if animacion_actual != "ANDAR":</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("ANDAR")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "ANDAR"</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Saltar</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>elif Input.is_action_pressed("ui_accept"):</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if animacion_actual != "SALTAR":</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("SALTAR")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "SALTAR"</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Moverse hacia la izquierda</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>elif Input.is_action_pressed("ui_left"):</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if animacion_actual != "ANDAR":</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("ANDAR")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "ANDAR"</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Moverse hacia la derecha</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>elif Input.is_action_pressed("ui_right"):</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if animacion_actual != "ANDAR":</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("ANDAR")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "ANDAR"</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Animación "BALANCE" en bucle</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>else:</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Comprueba si la animación actual no es "BALANCE" o si no se está reproduciendo ninguna animación</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if animacion_actual != "BALANCE" or not $AnimationPlayer.is_playing():</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("BALANCE")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "BALANCE"</span></p><p><span style="white-space: normal;">------------------------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">-----------------------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">EXPLICACION:</span></p><p>resuelto, player que tiene un movi miento continuo, y que si presiono boton izquierdo del raton ,cambia su animacion , si presiono boton derecho del raton cambia a otra animacion y tambien cambia animaciones presionando teclas flechas...(junto teclado numerico)</p><p><br /></p>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-55297282261602980302024-02-29T09:20:00.002+01:002024-02-29T09:20:14.218+01:00script GDScript para generar movimientos de un personaje con el mouse botones y con teclas flechas;<p> extends Node3D</p><p><br /></p><p>var animacion_actual = "ANDAR"</p><p><br /></p><p>func _ready():</p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></p><p><br /></p><p><br /></p><p>func _input(event):</p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event is InputEventMouseButton:</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if event.button_index == 1:</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>#if animacion_actual != "CHISPA":</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("CHISPA")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "CHISPA"</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Acción del motor del juego</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>elif Input.is_action_pressed("ui_up"):</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if animacion_actual != "ANDAR":</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("ANDAR")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "ANDAR"</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Saltar</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>elif Input.is_action_pressed("ui_accept"):</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if animacion_actual != "SALTAR":</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("SALTAR")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "SALTAR"</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Moverse hacia la izquierda</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>elif Input.is_action_pressed("ui_left"):</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if animacion_actual != "ANDAR":</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("ANDAR")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "ANDAR"</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Moverse hacia la derecha</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>elif Input.is_action_pressed("ui_right"):</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if animacion_actual != "ANDAR":</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("ANDAR")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "ANDAR"</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Animación "BALANCE" en bucle</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>else:</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Comprueba si la animación actual no es "BALANCE" o si no se está reproduciendo ninguna animación</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>if animacion_actual != "BALANCE" or not $AnimationPlayer.is_playing():</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>$AnimationPlayer.play("BALANCE")</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>animacion_actual = "BALANCE"</span></p><p><span style="white-space: normal;"><br /></span></p><p><span style="white-space: normal;">-----------------------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">--------------------------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">EXPLICACION:</span></p><p><span style="white-space: normal;">con este script consigo que el personaje player tenga una animacion continua, y que al presionar teclas de las flechas, (al lado teclado numerico) cambie su movimiento y ademas consegui que al presionar boton del raton aga otro movimiento, quiero hacer como un mago que al mover el brazo de diferentes formas aga algun efecto que ire preparando..........</span></p><div><br /></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-42375105140077505392024-02-28T18:38:00.002+01:002024-02-28T19:06:49.255+01:00Nuevo script para Godot4.2 para animar un personaje que sin presionar tecla ya tiene una animacion en bucle;<p>extends Node3D</p><p><br /></p><p>var animacion_actual = "ANDAR"</p><p><br /></p><p>func _physics_process(delta):</p><p><br /></p><p> # Agacharse</p><p><br /></p><p> if Input.is_action_pressed("ui_down"):</p><p><br /></p><p> if animacion_actual != "CHISPA":</p><p><br /></p><p> $AnimationPlayer.play("CHISPA")</p><p><br /></p><p> animacion_actual = "CHISPA"</p><p><br /></p><p> # Acción del motor del juego</p><p><br /></p><p> elif Input.is_action_pressed("ui_up"):</p><p><br /></p><p> if animacion_actual != "ANDAR":</p><p><br /></p><p> $AnimationPlayer.play("ANDAR")</p><p><br /></p><p> animacion_actual = "ANDAR"</p><p><br /></p><p> # Saltar</p><p><br /></p><p> elif Input.is_action_pressed("ui_accept"):</p><p><br /></p><p> if animacion_actual != "SALTAR":</p><p><br /></p><p> $AnimationPlayer.play("SALTAR")</p><p><br /></p><p> animacion_actual = "SALTAR"</p><p><br /></p><p> # Moverse hacia la izquierda</p><p><br /></p><p> elif Input.is_action_pressed("ui_left"):</p><p><br /></p><p> if animacion_actual != "ANDAR":</p><p><br /></p><p> $AnimationPlayer.play("ANDAR")</p><p><br /></p><p> animacion_actual = "ANDAR"</p><p><br /></p><p> # Moverse hacia la derecha</p><p><br /></p><p> elif Input.is_action_pressed("ui_right"):</p><p><br /></p><p> if animacion_actual != "ANDAR":</p><p><br /></p><p> $AnimationPlayer.play("ANDAR")</p><p><br /></p><p> animacion_actual = "ANDAR"</p><p><br /></p><p> # Animación "BALANCE" en bucle</p><p><br /></p><p> else:</p><p><br /></p><p> # Comprueba si la animación actual no es "BALANCE" o si no se está reproduciendo ninguna animación</p><p> if animacion_actual != "BALANCE" or not $AnimationPlayer.is_playing():</p><p><br /></p><p> $AnimationPlayer.play("BALANCE")</p><p><br /></p><p> animacion_actual = "BALANCE"</p><div><br /></div><p><span style="white-space: normal;">---------------------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">-------------------------------------------------------------------------------------------------------------------</span></p><p>EXPLICACION : UN PERSONAJE PLAYER QUE AL PRESIONAR TECLAS FLECHAS AGA 2 MOVIMIENTOS DIFERENTES, PERO QUE SIN PRESIONAR NADA YA TENGA UN MOVIMIENTO EN BUCLE, </p>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-74694452340366634072024-02-27T18:48:00.006+01:002024-02-27T18:52:31.992+01:00viva itch.io;<p> </p><iframe frameborder="0" height="167" src="https://itch.io/embed/2553321" width="552"><a href="https://perico415.itch.io/exploracion-en-godot">Exploracion en godot by perico415</a></iframe><div class="separator" style="clear: both; text-align: center;"><iframe allowfullscreen="" class="BLOG_video_class" height="482" src="https://www.youtube.com/embed/l-bqhY7NuXY" width="580" youtube-src-id="l-bqhY7NuXY"></iframe></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiwU6_1LocszKuNAdpe01gT90wyyg-Z8IO1wKmr4WRqmu_F455D7ysBKaza2Kn8bE9IjCXegtiEeeNcYulZ5dUZxlhZaZxOudYNVSPX7dG9l3XknsxB5a4b5EgnJr-bgC6wWB5eNBAHJYqDTLTJeeRTUm4seIFxFwtTLZdr0ac5zgF5iLaZetqCXmcmsr8/s1920/t5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiwU6_1LocszKuNAdpe01gT90wyyg-Z8IO1wKmr4WRqmu_F455D7ysBKaza2Kn8bE9IjCXegtiEeeNcYulZ5dUZxlhZaZxOudYNVSPX7dG9l3XknsxB5a4b5EgnJr-bgC6wWB5eNBAHJYqDTLTJeeRTUm4seIFxFwtTLZdr0ac5zgF5iLaZetqCXmcmsr8/w400-h225/t5.jpg" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR44m3iIERyMV9QI96ELZhbiW6l_CXruWjRSY3OdLLiKwiljHx2sNPU8ymi3lDuimFTzGkyGr9Wpb0OdJBL7wScEKavkokXGWF3hJTF0EaamEXPGLrhwtjXY6fHMAzcEwrhBFHAZgQ2Hrwz2pPD3e2RWEBEdBdU27TJgQzOgawAXtj1rcwle7KRdkI7bAJ/s1920/t4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR44m3iIERyMV9QI96ELZhbiW6l_CXruWjRSY3OdLLiKwiljHx2sNPU8ymi3lDuimFTzGkyGr9Wpb0OdJBL7wScEKavkokXGWF3hJTF0EaamEXPGLrhwtjXY6fHMAzcEwrhBFHAZgQ2Hrwz2pPD3e2RWEBEdBdU27TJgQzOgawAXtj1rcwle7KRdkI7bAJ/w400-h225/t4.jpg" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDNW7231kwgFBRAKJ3IYr1xT80jmC9e_nY3cd6c22kiVMabx30r1FtqsPaWDPSpx363jGw644iNUbRfbf5cU0vds8kqgsvQwSks0ESyTbtx891IfNwhRGz20kDgJywPChnXMsDJFvAyU3ni8sFh_IdikhnM7m81oSs-dcxb5p9gfBy0GOP1u6O9dh0QWfW/s1920/t3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDNW7231kwgFBRAKJ3IYr1xT80jmC9e_nY3cd6c22kiVMabx30r1FtqsPaWDPSpx363jGw644iNUbRfbf5cU0vds8kqgsvQwSks0ESyTbtx891IfNwhRGz20kDgJywPChnXMsDJFvAyU3ni8sFh_IdikhnM7m81oSs-dcxb5p9gfBy0GOP1u6O9dh0QWfW/w400-h225/t3.jpg" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn_wCUW_fkY0rThzt4X13BnREXtwQiS70AYmbUDPeR1yvBY4-HLG5zaCR8VJoF-Sj6tjnwrtOf2OAauoinPN0ca7l_JbeRwAMp4caGy4QXbLID1-7DeB6Ev_koqO5rYA6aSWpXddAZetp24rQShunx3-0ZYvP-kkVIzpbui_Hb00FjfbuRwVw-t_4iAtrl/s1920/t2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn_wCUW_fkY0rThzt4X13BnREXtwQiS70AYmbUDPeR1yvBY4-HLG5zaCR8VJoF-Sj6tjnwrtOf2OAauoinPN0ca7l_JbeRwAMp4caGy4QXbLID1-7DeB6Ev_koqO5rYA6aSWpXddAZetp24rQShunx3-0ZYvP-kkVIzpbui_Hb00FjfbuRwVw-t_4iAtrl/w400-h225/t2.jpg" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMUAWp0AKIRLSkE8qqlOsvJzDbhqrCof8jaX665gAQElYTFkXnbQseflLIUbI4mxusw9OOTM9A1ffatxjwPBethXPqjgb6deZ6XVAZ0J7evYAdJF_nTzrDxbfU1sZ_butUzR2w2EOVFNPDLj-lKkSoO3bM0JUhxXNB-s4J3kd0198nqetxfjSiQ_SBJuA0/s1920/t1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1080" data-original-width="1920" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMUAWp0AKIRLSkE8qqlOsvJzDbhqrCof8jaX665gAQElYTFkXnbQseflLIUbI4mxusw9OOTM9A1ffatxjwPBethXPqjgb6deZ6XVAZ0J7evYAdJF_nTzrDxbfU1sZ_butUzR2w2EOVFNPDLj-lKkSoO3bM0JUhxXNB-s4J3kd0198nqetxfjSiQ_SBJuA0/w400-h225/t1.jpg" width="400" /></a></div><br />juego de exploracion en godot teclas w-a-s-d mouse botones espacio, teclas flechas y m para reiniciar, explora y dispara y descubre mujeres , es un prototipo del que abuse en tema de memoria, pero en fin es gratuito, si alguien quiere poner algun donativo bien benido.............videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-78129352479106332752024-02-26T19:49:00.001+01:002024-02-26T19:49:10.186+01:00 SOBRE GODOT 4.2 OPINION EN TEMA DE MEMORIA Y RECURSOS;<p><span style="font-size: medium;"> En unos 3 meses de aprender y probar godot4.2 y consiguiendo programar cosas esenciales, </span></p><p><span style="font-size: medium;">instanciar objetos, rotarlos, moverlos, animar, borrar, comprender un poco las señales y los scripts gdscript, conseguir algo en efectos de particulas y efectos de tela y ropa....</span></p><p><span style="font-size: medium;">.ahora me encuentro que la memoria es mas complicada de equilibrar que usando Unity,</span></p><p><span style="font-size: medium;"> de todas formas espero que usando inteligentemente el tema de "instanciar" y "lod" podre hacer juegos fluidos...</span></p><p><span style="font-size: medium;">mirare de ir trabajando por habitaciones o sectores y que por ejemplo un personaje al estar en una habitacion al pasar por una de sus puertas instanciando carge un nuevo escenario y borre completamente el anterior para hacer como una especie de niveles......</span></p><p><span style="font-size: medium;">.Estoy con buenos logros, pero ahora me falta, como diria, velocidad desarrollando por lo novedoso que es para mi Godot4.2 con Unity estuve unos 10 años aprendiendo y usando y lo tenia mas de la mano, y con Godot 4.2 llevo unos 3 meses, asi que no me rindo me encanta Godot y seguire con Godot.</span></p>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-4164727415441634542024-02-25T12:28:00.004+01:002024-02-25T12:41:37.054+01:00Nueva forma de rotar un extends MeshInstance3D con Godot4.2;<p> extends MeshInstance3D</p><p><br /></p><p><br /></p><p># Velocidad de rotación (grados por segundo)</p><p>var rotation_speed = 290.0 # Ajusta el valor para cambiar la velocidad</p><p><br /></p><p># Función llamada al entrar el nodo en la escena</p><p>func _ready():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass</span></p><p><br /></p><p># Función llamada cada fotograma</p><p>func _physics_process(delta):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Calcular la rotación en base al delta y la velocidad</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>var angle = delta * rotation_speed</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Aplicar la rotación al eje Y del nodo</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>rotation.y += angle</span></p><p><span style="white-space: normal;"><br /></span></p><p><span style="white-space: normal;"><br /></span></p><p><span style="white-space: normal;">----------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">otro ejemplo </span></p><p><span style="white-space: normal;">-----------------------------------------------------------------------------------------------------------</span></p><p>extends SoftBody3D</p><p><br /></p><p># Velocidad de rotación (grados por segundo)</p><p>var rotation_speed = 0.0 # Ajusta el valor para cambiar la velocidad</p><p><br /></p><p># Función llamada al entrar el nodo en la escena</p><p>func _ready():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass</span></p><p><br /></p><p># Función llamada cada fotograma</p><p>func _physics_process(delta):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Calcular la rotación en base al delta y la velocidad</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>var angle = delta * rotation_speed</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Aplicar la rotación al eje Y del nodo</span></p><p><span></span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>rotation.y += angle</span></p>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0tag:blogger.com,1999:blog-5699774809420893470.post-86053751524852368912024-02-21T18:50:00.004+01:002024-02-21T19:11:04.429+01:00destruir por colision un cubo e instanciar en su lugar una esfera con godot4.2;<p> extends Area3D</p><p>var Esferauno = preload("res://GRAFICOS/ESTUDIO DE ROSCAS CON PERSONAJE/esferauno.tscn")</p><p><br /></p><p>func _ready():</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Replace with function body.</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass</span></p><p><br /></p><p>func _process(delta):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span># Replace with function body.</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass</span></p><p><span style="white-space: pre;"> </span></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p>func _on_area_entered(area):</p><p><span style="white-space: pre;"> </span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>var parent = get_parent()</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>var cubouno = parent.get_node("cubouno")</span></p><p> </p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>get_node("cubouno").queue_free()</span></p><p><span style="white-space: pre;"> </span></p><p><span style="white-space: pre;"> </span></p><p><span style="white-space: pre;"> </span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></p><p><br /></p><p><br /></p><p>func _on_area_exited(area):</p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>var Esferauno = Esferauno.instantiate()</span></p><p><br /></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>add_child(Esferauno)</span></p><p><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></p><p><span style="white-space: normal;">-----------------------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">-------------------------------------------------------------------------------------------------------------------------</span></p><p><span style="white-space: normal;">ESTE SCRIPT ES PERFECTO. EXPLICACION:</span></p><p><span style="white-space: normal;">EN REALIDAD SOLO ES EL ORDEN DE LOS GRAFICOS EN LA ESCENA.......PARTIENDO DEL NODO RAIZ QUE ES UN WorldEnvironment EN MI JUEGO SALE DESDE EL WorldEnvironment UN HIJO QUE ES UNA AREA3D Y DE ESA AREA3D SALE EL COLISIONSHAPE3D DE HIJO DEL AREA 3D Y DE HIJO DEL COLISIONSHAPE3D SALE EL CUBO QUE ES DE TIPO CGSBOX3D, ,,, LA ESFERA ES UNA ESCENA NUEVA QUE ESTA EN LA CARPETA </span></p><p><span>"res://GRAFICOS/ESTUDIO DE ROSCAS CON PERSONAJE/esferauno.tscn"</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrJeRICTUm2HzRpBKpJ45DWk0mEUJBd5BTxlH9E8PCy4HMWyBH8bxTUm0644Ol8IUA-xzWhkRHaqam450uxVglYS6Pt1T0HHmrUikxD3bB-83VyMXx96tizZNvQwLNQ7MV-hzJ_tJz6bEwTCYadVEViO7X_rjt_JAEJPCfKZF7gvt_tN5OyZHDiORK_2bB/s395/RECORTEPARABLOG.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="109" data-original-width="395" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrJeRICTUm2HzRpBKpJ45DWk0mEUJBd5BTxlH9E8PCy4HMWyBH8bxTUm0644Ol8IUA-xzWhkRHaqam450uxVglYS6Pt1T0HHmrUikxD3bB-83VyMXx96tizZNvQwLNQ7MV-hzJ_tJz6bEwTCYadVEViO7X_rjt_JAEJPCfKZF7gvt_tN5OyZHDiORK_2bB/w400-h110/RECORTEPARABLOG.jpg" width="400" /></a></div><br /><span>-------------------------------------------------------------------</span><p></p><p><span>EL SCRIPT ESTE ES PERFECTO..........EL DE AVAJO ...EL PRIMERO EL DE ARRIBA NO FUNCIONA PERFECTO SE BLOQUEA DESDE EL MOTOR DE JUEGOS GODOT4.2 CUANDO SE BUELVE A REPETIR EL DISPARO......</span></p><p><span>-------------------------------------------------------------------</span></p><p><span style="white-space: normal;"><br /></span></p><p><span style="white-space: normal;"><br /></span></p><div><div>extends Area3D</div><div>var Esferauno = preload("res://GRAFICOS/ESTUDIO DE ROSCAS CON PERSONAJE/esferauno.tscn")</div><div><br /></div><div>func _ready():</div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span># Replace with function body.</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass</span></div><div><br /></div><div>func _process(delta):</div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span># Replace with function body.</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass</span></div><div><span style="white-space: normal; white-space: pre;"> </span></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div>func _on_area_entered(area):</div><div><span style="white-space: normal; white-space: pre;"> </span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>var parent = get_parent()</span></div><div><br /></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>var CollisionShape3Dcubo = parent.get_node("CollisionShape3Dcubo")</span></div><div> </div><div><br /></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>get_node("CollisionShape3Dcubo").queue_free()</span></div><div><span style="white-space: normal; white-space: pre;"> </span></div><div><span style="white-space: normal; white-space: pre;"> </span></div><div><span style="white-space: normal; white-space: pre;"> </span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></div><div><br /></div><div><br /></div><div>func _on_area_exited(area):</div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>var Esferauno = Esferauno.instantiate()</span></div><div><br /></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>add_child(Esferauno)</span></div><div><span style="white-space: normal;"><span style="white-space: pre;"> </span>pass # Replace with function body.</span></div></div><div><br /></div>videojuegos onlain asaco415http://www.blogger.com/profile/06055446507948551963noreply@blogger.com0