Was ist der Fehler hier (Godot)?


01.05.2024, 17:38

Edit:

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Python arbeitet mit dem einrücken von Zeilen. Da der Code in Zeile 17 nicht weiter eingerückt ist wird nicht erkannt das dieser zum else gehört.

Edit: Wird zwar nicht markiert, aber Zeile 15 müsste eigentlich auch weiter eingerückt sein damit diese im if steht und die Bedingung im if selber sieht auch nicht so ganz richtig aus.

Woher ich das weiß:Hobby

Lando240 
Beitragsersteller
 01.05.2024, 17:31

Danke für deine schnelle Hilfe ^^ wie mache ich dies genau?

Suiram1  01.05.2024, 17:35
@Lando240

Mit einrücken meine ich wie weit der Anfang vom code vom Linken Zeilenrand entfernt ist. Am einfachsten gehst du mit dem Cursor zum Anfang vom Code in den jeweiligen Zeilen und drückst Tab.

Suiram1  01.05.2024, 17:37
@Suiram1

Bei der If Bedingung kann ich nur ein wenig raten was diese bezwecken soll da wenn man annimmt das beides Bedingungen sind und diese erfüllt sein sollen wäre die Linke unötig. Rein aus Kontext würde ich auf folgendes Tippen

abs(velocity.x) > 1
Lando240 
Beitragsersteller
 01.05.2024, 17:37
@Suiram1

Ich habe es mal ausprobiert aber jetzt ist Zeile 16 bis 18 rot weißt du was ich falsch gemacht habe ich kann das Bild oben anhängen ^^

Suiram1  01.05.2024, 17:40
@Lando240

Du musst nicht das If und das else einrücken sondern den Code der zu diesen gehört. So wäre der Teil richtig:

if abs(velocity.x) > 1:
   sprite_2d.animation = "running"
else:
   sprite_2d.animation = "default"
Lando240 
Beitragsersteller
 01.05.2024, 17:45
@Suiram1

Vielen Dank ^^ jetzt funktioniert es