codjing
1
Godot Version
<!- 4.2.1 →
Question
I have a Stack Oveflow error in my GDscript. I think I understand why (Possibly cause my Set, get is creating a loop) but I am not sure how to fix it.
`extends Node2D
var shake = false
#shake power
var strength_power:float = 10.00
var ball_speed = 170
##timeout
var timeFinished = false
func _process(delta):
if ball_speed > 500:
ball_speed = 500
var Player1PowerUp1Usage = 5
@export var Player2PowerUp1Usage = 5 :
set(new_val):
Player2PowerUp1Usage = pos_var_set(new_val)
get:
return Player2PowerUp1Usage
var canUseP1 = true
var canUseP2 = true
func pos_var_set(new_val):
if new_val > 0:
Player2PowerUp1Usage = new_val
else:
Player1PowerUp1Usage = 0`
I think you need to change this to this:
@export var Player2PowerUp1Usage = 5 :
set: pos_var_set
Let the function set the new value, in the declaration you only need to declare which function will handle the set method.
codjing
3
There is a parse error, after indenting I put brackets but it still won’t fix.
Actually, I think I missed an equal sign there:
@export var Player2PowerUp1Usage = 5 :
set = pos_var_set
1 Like
codjing
5
It still doesn’t work
extends Node2D
var shake = false
#shake power
var strength_power:float = 10.00
var ball_speed = 170
##timeout
var timeFinished = false
func _process(delta):
if ball_speed > 500:
ball_speed = 500
var Player1PowerUp1Usage = 5
@export var Player2PowerUp1Usage = 5 :
set = pos_var_set
var canUseP1 = true
var canUseP2 = true
func pos_var_set(new_val):
if new_val > 0:
Player2PowerUp1Usage = new_val
else:
Player1PowerUp1Usage = 0
I ran your code and didn’t got any errors. I believe there is something else involved in the problem. What error do you get now?
Whoops, I make a stupid mistake
. Thanks for the fix!
1 Like
system
Closed
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.