domingo, 30 de marzo de 2025

GDScript baja puntuacion y escala a reduccion Sprite2D y mesh_instance_3d; hace efectos de barra de vida; funciona;Godot4.4;

 extends Area3D


var score = 10

@onready var mesh_instance_3d = $"../../CharacterBody3D/CollisionShape3D/PROTAGONISTA EXPLORADORA VARIOS MOVIMIENTOS ANDAR CORRER GRITAR_/MeshInstance3D2 PRUEBAS DE CORAZON"

@onready var sprite_rojo = $"Sprite2D rojo"

@onready var label_resta = $"Label resta"


func _ready():

actualizar_visualizacion()


func _on_area_entered(area: Area3D) -> void:

if area.is_ancestor_of(self): #evita que se active el trigger con el mismo objeto que contiene el script

return

#$AudioStreamPlayer3D.play() #si lo quieres activar descomentalo

score -= 1

actualizar_visualizacion()


if score < 0:

get_tree().change_scene_to_file("res://ESCENAS/1-world_environmentESCENA-1-.tscn")


func actualizar_visualizacion():

label_resta.text = str(score)

var escala = float(score) / 10.0

sprite_rojo.scale = Vector2(escala, escala)

mesh_instance_3d.scale = Vector3(escala, escala, escala) #se corrige para que trabaje en 3D

if score <= 0:

sprite_rojo.visible = false

mesh_instance_3d.visible = false


func _on_timer_timeout() -> void:

pass


No hay comentarios:

Publicar un comentario