domingo, 23 de febrero de 2025

Sumar puntos con godot 4.3; GDScript; Y AL ALCANZAR 6 PUNTOS CAMBIAR LA ESCENA;

extends Area3D


var score = 1


func _ready():

pass


func _on_area_entered(area: Area3D) -> void:

$Label.text = str(score)

score += 1

if score > 6:

get_tree().change_scene_to_file("res://ESCENAS NIVELES/FINALworld_environment.tscn")

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

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

#Explicacion: arrastrar con el mouse desde la carpeta res:   hacia la linea del codigo escrito, para que este bien enrutado, ("res://ESCENAS  NIVELES/FINALworld_environment.tscn") asi correcto, si en lugar escribiese  ("res://FINALworld_environment.tscn") no funcionaria porque el archivo tscn esta en una subcarpeta dentro de la carpeta "res" osea en "res " contiene la carpeta "ESCENAS  NIVELES"

y "ESCENAS  NIVELES" contiene el archivo tscn "FINALworld_environment.tscn"......esta es mi explicacion que la IA no te explica , ahora pondre la explicacion de la IA................Explicación:

  1. extends Area3D:

    • Esta línea indica que el script está adjunto a un nodo de tipo Area3D. Los nodos Area3D se utilizan para detectar colisiones y superposiciones en un espacio 3D.
  2. var score = 1:

    • Se declara una variable llamada score y se inicializa en 1. Esta variable se utilizará para llevar la cuenta de los puntos.
  3. func _ready(): pass:

    • La función _ready() se llama cuando el nodo está listo para ser utilizado. En este caso, no se realiza ninguna acción específica, por lo que se utiliza pass.
  4. func _on_area_entered(area: Area3D) -> void::

    • Esta función se llama automáticamente cuando otro nodo Area3D entra en el área de este nodo.
    • $Label.text = str(score): Esta linea, le dice al objeto label que muestre el valor de la variable score.
    • score += 1: Incrementa la variable score en 1 cada vez que se detecta una colisión.
  5. if score > 6::

    • Se agrega una condición if para verificar si la variable score es mayor que 6.
  6. get_tree().change_scene_to_file("res://FINALworld_environment.tscn"):

    • Si la condición score > 6 se cumple, esta línea de código se ejecuta.
    • get_tree(): Obtiene el árbol de la escena actual.
    • change_scene_to_file("res://FINALworld_environment.tscn"): Carga y cambia a la escena especificada por la ruta "res://FINALworld_environment.tscn". Asegúrate de que esta ruta sea correcta y que la escena exista en tu proyecto.

Cómo usarlo:

  1. Asegúrate de que tienes una escena llamada "FINALworld_environment.tscn" en la raíz de tu proyecto.
  2. Adjunta este script a un nodo Area3D.
  3. Asegúrate de que hay otro nodo Area3D que puede entrar en el área del nodo al que has adjuntado este script.
  4. Crea un nodo de tipo Label, y nombra ese nodo como "Label".
  5. Cuando el otro nodo Area3D entre en el área 6 veces, la escena cambiará a "FINALworld_environment.tscn". 

Y aqui el gdscript facilitado por la IA:

extends Area3D

var score = 1

func _ready():
    pass

func _on_area_entered(area: Area3D) -> void:
    $Label.text = str(score)
    score += 1
    
    if score > 6:
        get_tree().change_scene_to_file("res://FINALworld_environment.tscn")

No hay comentarios:

Publicar un comentario