Remplasando el setget de godot 2 por lo que corresponda en Godot 3.2

cocomanga

Hola a todos estoy haciendo un juego y ahora deseo colocarle el puntaje, pero se presento ese pequegno problema con el setget, les dejo la linea tal cual porque cuando la marco me aparece marcada como error (en Godot 3.2) por las dudas dejo la linea en conflicto

   var score  =  0     setget get_score

Aclaro que el problema es el setget porque si lo comento compila bien y puedo jugar (Claro no me sale el puntaje).

var score  =  0  #   setget get_score

Por si es relevante les digo que esa linea esta en un script especifico que pertenece a un determinado node

El eror que aparece figura como

error(3, 1):   The  setter function isn't defined.
*************************************************************************************************************************************************************************************************

Este codigo se relaciona con el que les mostrare en la linea que les dejo marcada (por), porque lo demas ya marchava pero que muy bien

No se si una vez solucionado el problema del setget Se pueda presentar un problema con la linea que les voy a dejar la cual esta en otro node, que la verdad no creo porque al comentar el setget get_score como ya les dige compila todo perfecto

Esta line que les dejo esta en otro node y deberia compilar y pues es para que me bote el puntage pero pues la dejo de una vez para

get_node("/root/World").score +=  5 

AikonCWD

Creo que puedo ayudarte con este problema, pero debes entender que hace el operador setget

setget: Bindea una función a una variable, de tal forma que cada vez que modifiquemos dicha variable, se ejecute la función deseada.

En tu ejemplo el error lo tienes en el nombre de la función func set_score(value): que no se corresponde con el setget get_score.

Para solucionarlo debes cambiar el setget get_score por setget set_score

Un saludo

1 1 respuesta
B

Yo no quiero ser malo pero lo de "remplaSando" hace que me explote la cabeza...

cocomanga

Muchas gracias AikonCWD si tenias razon, dejo la respuesta aca por si en el futuro alguien tiene la duda.

Por si la duda surge en el futuro si hay que cambiar la g por s con lo que quedara set_score


#2AikonCWD:

AikonCWD
Para solucionarlo debes cambiar el setget get_score por setget set_score

:) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :)

var score  =  0     setget set_score    

:) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :)

Usuarios habituales