67 lines
1.1 KiB
HTML
67 lines
1.1 KiB
HTML
<h2>Full example</h2>
|
|
<pre><code>extends BaseClass
|
|
class_name MyClass, "res://path/to/optional/icon.svg"
|
|
|
|
# Member Variables
|
|
|
|
var a = 5
|
|
var s = "Hello"
|
|
var arr = [1, 2, 3]
|
|
var dict = {"key": "value", 2:3}
|
|
var typed_var: int
|
|
var inferred_type := "String"
|
|
|
|
# Constants
|
|
|
|
const ANSWER = 42
|
|
const THE_NAME = "Charly"
|
|
|
|
# Enums
|
|
|
|
enum {UNIT_NEUTRAL, UNIT_ENEMY, UNIT_ALLY}
|
|
enum Named {THING_1, THING_2, ANOTHER_THING = -1}
|
|
|
|
# Built-in Vector Types
|
|
|
|
var v2 = Vector2(1, 2)
|
|
var v3 = Vector3(1, 2, 3)
|
|
|
|
# Function
|
|
|
|
func some_function(param1, param2):
|
|
var local_var = 5
|
|
|
|
if param1 < local_var:
|
|
print(param1)
|
|
elif param2 > 5:
|
|
print(param2)
|
|
else:
|
|
print("Fail!")
|
|
|
|
for i in range(20):
|
|
print(i)
|
|
|
|
while param2 != 0:
|
|
param2 -= 1
|
|
|
|
var local_var2 = param1 + 3
|
|
return local_var2
|
|
|
|
# Functions override functions with the same name on the base/parent class.
|
|
# If you still want to call them, use '.' (like 'super' in other languages).
|
|
|
|
func something(p1, p2):
|
|
.something(p1, p2)
|
|
|
|
# Inner Class
|
|
|
|
class Something:
|
|
var a = 10
|
|
|
|
# Constructor
|
|
|
|
func _init():
|
|
print("Constructed!")
|
|
var lv = Something.new()
|
|
print(lv.a)</code></pre>
|