static_variables_2.gd 911 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. @static_unload
  2. class A:
  3. static var x: int = 1
  4. static var y: int = 42:
  5. set(_value):
  6. print("The setter is NOT called on initialization.") # GH-77098 p.1
  7. static func _static_init() -> void:
  8. prints("A _static_init begin:", x)
  9. x = -1
  10. prints("A _static_init end:", x)
  11. static func sf(p_x: int) -> void:
  12. x = p_x
  13. prints("sf:", x)
  14. # GH-77331
  15. func f(p_x: int) -> void:
  16. x = p_x
  17. prints("f:", x)
  18. class B extends A:
  19. static func _static_init() -> void:
  20. prints("B _static_init begin:", x)
  21. x = -2
  22. prints("B _static_init end:", x)
  23. static func sg(p_x: int) -> void:
  24. x = p_x
  25. prints("sg:", x)
  26. func g(p_x: int) -> void:
  27. x = p_x
  28. prints("g:", x)
  29. func h(p_x: int) -> void:
  30. print("h: call f(%d)" % p_x)
  31. f(p_x)
  32. func test():
  33. prints(A.x, B.x)
  34. A.x = 1 # GH-77098 p.2
  35. prints(A.x, B.x)
  36. B.x = 2
  37. prints(A.x, B.x)
  38. A.sf(3)
  39. B.sf(4)
  40. B.sg(5)
  41. var b := B.new()
  42. b.f(6)
  43. b.g(7)
  44. b.h(8)