domingo, 9 de marzo de 2025

Con Godot 4.4. GDScript que sencillo un giro fluido en eje "y";

 extends MeshInstance3D


func _process(delta: float) -> void:

rotate_y(0.0007)

pass

Como se hacen enemigos persiguiendo a player en Godot 4.4;

 GDScript Godot 4.4 se pone al enemigo:

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

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

extends CharacterBody3D


const SPEED = 7.0

const ACCELERATION = 5.5 # Ajusta este valor para la velocidad de respuesta deseada

@onready var navAgent = $NavigationAgent3D

@onready var target = $"../Player"


func _physics_process(delta: float) -> void:

# Añadir gravedad.

if not is_on_floor():

velocity += get_gravity() * delta


if target: # Verifica si el objetivo existe

_update_target_position() # Actualiza la posición del objetivo primero


var currentLocation = global_transform.origin

var nextLocation = navAgent.get_next_path_position()

var nextVelocity = (nextLocation - currentLocation).normalized() * SPEED


velocity = velocity.move_toward(nextVelocity, ACCELERATION * delta) # Usa delta para suavizar la aceleración

move_and_slide()

else:

print("El objetivo (jugador) no existe.")


func _update_target_position():

if target:

navAgent.target_position = target.global_transform.origin

else:

print("El objetivo (jugador) no existe. No se puede actualizar la posición del NavigationAgent.")

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

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

Un complemento sobre restar puntos vidas al player; cuando le toca el enemigo resta 1 punto en cada choque entrada en su area3d, y al llegar a 0 puntos sale escena de Game over, escribo Game Hover, tengo problemas de ortografia, pero los GDScript son perfectos, cualquier duda o aclaracion hoy en dia es sencillisima de resolver , solo teneis que copiar los GDScript y pegarlos en la IA de vuestro navegador  o IA que utiliceis, y corregira cualquier minimo fallo , Hoy en dia aunque no sepas programar la IA te lo acaba de resolver todo y ayuda a aprender.

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

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

extends Area3D


var score = 10


func _ready():

pass


func _on_area_entered(area: Area3D) -> void:

$LabelRESTA.text = str(score)

score -= 1


if score < 0:

get_tree().change_scene_to_file("res://ESCENA DE PERDER/PIERDES.tscn")



func _on_timer_timeout() -> void:

pass # Replace with function body.

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

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

Aqui GDScript para sumar puntos cuando enemigo pasa por los aros aros de un color premio de ese color aros de otro color premio de otro color, al sumar una determinada cantidad de puntos.......

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

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

extends Area3D


var score = 1


func _ready():

pass


func _on_area_entered(area: Area3D) -> void:

$Label.text = str(score)

score += 1


if score > 10:

get_tree().change_scene_to_file("res://TIAS EN PELOTAS -2-/Thriller Part 3.tscn")



func _on_timer_timeout() -> void:

pass # Replace with function body.

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

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

En unos dias el juego estara en Itch.io de ¡¡forma gratuita para su descarga.!!....desde este enlace https://perico415.itch.io/

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

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





Un complemento de juego un GDScript a los 4 segundos del game over retorna al comienzo del juego.

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

extends Node3D


var timer = Timer.new()


func _ready() -> void:

add_child(timer)

timer.one_shot = true

timer.timeout.connect(_on_timer_timeout)

timer.start(4) # Inicia el temporizador de 3 segundos


func _on_timer_timeout():

get_tree().change_scene_to_file("res://MAPnode_3d.tscn") # Cambia a la escena "MAPnode_3d.tscn"


func _process(delta: float) -> void:

pass