this post was submitted on 08 Feb 2025
12 points (100.0% liked)

Godot

6214 readers
16 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

[email protected]

Credits

founded 2 years ago
MODERATORS
 

How cool would that be!? Like having multiple constructors for a class or having a move method with the parameters (x:float, y:float) OR (relative:Vector2) ! That'd be super cool and useful I thinks <3

top 2 comments
sorted by: hot top controversial new old
[โ€“] [email protected] 7 points 4 days ago (1 children)

It's not a thing and I totally agree it should exist, there's a proposal for it on GitHub.

If you want to handle different types, the right way of doing it is giving your parameter a generic type then checking what it is in the function.

func _ready():
    handle_stuff(10)
    handle_stuff("Hello")

func handle_stuff(x: Variant):
    if x is int:
        print("%d is an integer" % x)
    elif x is String:
        print("%s is a string" % x)

This prints 10 is an integer and Hello is a string.

If you really, really need to have a variable amount of arguments in your function, you can pass an array. It's pretty inefficient but you can get away with it.

func handle_stuff(stuff: Array):
    for x: Variant in stuff:
        if x is int:
            print("%d is an integer" % x)
        elif x is String:
            print("%s is a string" % x)

Then you can pass [10, 20, 30] into it or something. It's a useful trick.

[โ€“] [email protected] 3 points 3 days ago

I prefer passing a dict, easier to check what was given and what wasn't.