Asserts that the [code]condition[/code] is [code]true[/code]. If the [code]condition[/code] is [code]false[/code], an error is generated. When running from the editor, the running project will also be paused until you resume it. This can be used as a stronger form of [method push_error] for reporting errors to project developers or add-on users. [b]Note:[/b] For performance reasons, the code inside [method assert] is only executed in debug builds or when running the project from the editor. Don't include code that has side effects in an [method assert] call. Otherwise, the project will behave differently when exported in release mode. The optional [code]message[/code] argument, if given, is shown in addition to the generic "Assertion failed" message. You can use this to provide additional details about why the assertion failed. [codeblock] # Imagine we always want speed to be between 0 and 20. var speed = -10 assert(speed < 20) # True, the program will continue assert(speed >= 0) # False, the program will stop assert(speed >= 0 and speed < 20) # You can also combine the two conditional statements in one check assert(speed < 20, "speed = %f, but the speed limit is 20" % speed) # Show a message with clarifying details [/codeblock]
Stellt sicher, dass [code]condition[/code][code]true[/code] ist. Wenn [code]condition[/code][code]false[/code] ist wird ein Fehler erzeugt. Wenn das Spiel vom Editor aus gestartet wurde wird es außerdem pausiert. Zum Fortfahren muss es vom Editor aus fortgesetzt werden. [b]Hinweis:[/b] Der Code innerhalb von [method assert] wird nur in Debug-Builds oder beim Ausführen des Spiels vom Editor ausgeführt. Desswegen sollte kein Code mit Nebeneffekten (z.B.: ändern von Variablen) innerhalb der Argumente von [method assert] genutzt werden. Sonst wird sich das Spiel in exportierten Versionen anders verhalten als im Editor. Das optionale Argument [code]message[/code] wird, zusätzlich zu der allgemeinen Fehlermeldung angezeigt. Das kann verwendet werden um genauere Informationen zum Grund des Fehlers zu geben. [codeblock] # Angenommen, wir wollen immer eine Geschwindigkeit zwischen 0 und 20 var geschwindigkeit = -10 assert(geschwindigkeit < 20) # Wahr, das Programm wird fortgesetzt assert(geschwindigkeit >= 0) # Falsch, das Programm wird gestoppt assert(geschwindigkeit >= 0 and geschwindigkeit < 20) # Zwei Aussagen können in einer Prüfung zusammengefasst werden assert(geschwindigkeit < 20, "Geschwindigkeit = %f, aber die Geschwindigkeitsbegrenzung beträgt 20" % geschwindigkeit) # Zeigt eine Nachricht mit klärenden Details [/codeblock]
[b]Note:[/b] For performance reasons, the code inside [method assert] is only executed in debug builds or when running the project from the editor. Don't include code that has side effects in an [method assert] call. Otherwise, the project will behave differently when exported in release mode.
The optional [code]message[/code] argument, if given, is shown in addition to the generic "Assertion failed" message. You can use this to provide additional details about why the assertion failed.
[codeblock]
# Imagine we always want speed to be between 0 and 20.
var speed = -10
assert(speed < 20) # True, the program will continue
assert(speed >= 0) # False, the program will stop
assert(speed >= 0 and speed < 20) # You can also combine the two conditional statements in one check
assert(speed < 20, "speed = %f, but the speed limit is 20" % speed) # Show a message with clarifying details
[/codeblock]
[b]Hinweis:[/b] Der Code innerhalb von [method assert] wird nur in Debug-Builds oder beim Ausführen des Spiels vom Editor ausgeführt. Desswegen sollte kein Code mit Nebeneffekten (z.B.: ändern von Variablen) innerhalb der Argumente von [method assert] genutzt werden. Sonst wird sich das Spiel in exportierten Versionen anders verhalten als im Editor.
Das optionale Argument [code]message[/code] wird, zusätzlich zu der allgemeinen Fehlermeldung angezeigt. Das kann verwendet werden um genauere Informationen zum Grund des Fehlers zu geben.
[codeblock]
# Angenommen, wir wollen immer eine Geschwindigkeit zwischen 0 und 20
var geschwindigkeit = -10
assert(geschwindigkeit < 20) # Wahr, das Programm wird fortgesetzt
assert(geschwindigkeit >= 0) # Falsch, das Programm wird gestoppt
assert(geschwindigkeit >= 0 and geschwindigkeit < 20) # Zwei Aussagen können in einer Prüfung zusammengefasst werden
assert(geschwindigkeit < 20, "Geschwindigkeit = %f, aber die Geschwindigkeitsbegrenzung beträgt 20" % geschwindigkeit) # Zeigt eine Nachricht mit klärenden Details
[/codeblock]