Variablen werden nicht übergeben Python?


10.09.2022, 19:16

Hier ist bei mir noch eins…

Hanibal545  10.09.2022, 18:48

Ist der Link noch aktuell?

Ich sehe in der Zeile 57 & 65 keine Erwähnung von ontile

Idk158 
Beitragsersteller
 10.09.2022, 18:50

Eigentlich schon aber es ist direkt vor der ersten # Reihe

Hanibal545  10.09.2022, 18:53

Bei mit werden nur 2 Erwähnungen gefunden.

https://imgur.com/a/OxVpSEW

Idk158 
Beitragsersteller
 10.09.2022, 18:59

           if sprungvar < 0:

               n = -1

           playerY -= (((sprungvar**2)*0.05)*n)

           if ontile == False:

               sprungvar -= 1            

       screen.fill(BLAU)

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Also eines vorweg: Ich würde dir deutlich davon abraten, globale Variablen zum Datenaustausch zu nutzen. Du solltest es schon bei deinem aktuellen Stand merken, dass es in Richtung Chaos geht.

Besser ist der Weg über Parameter und Rückgabewerte.

Beispiel:

def get_sum(number_one, number_two):
  result = number_one + number_two
  return result

Jede Funktion sollte nur eine einzige Aufgabe erfüllen, also maximal nur einen Wert zurückliefern (deine Funktion hitrefresh liefert zwei: gameover und tile).

So werden Funktionen flexibler und können tatsächlich (für mehrere Anwendungsfälle) wiederverwendet werden.

Teile deinen Code zudem in mehr Funktionen auf, statt Abgrenzungen (#) einzubauen. Zwischen jeder Funktionsdefinition wird eine leere Zeile gesetzt, dann wird das Programm auch übersichtlicher.

Zuletzt noch zu deinem Problem: Man kann wohl annehmen, dass die Funktion hitrefresh nicht aufgerufen wird oder keine Kollision stattfindet. Durchlaufe das Programm via Debugger oder setze dir Debugausgaben (print) in das Programm, um den Verlauf zur Laufzeit nachvollziehen zu können.


Idk158 
Beitragsersteller
 10.09.2022, 20:30

Danke!!!!!!!!!!! 👍⭐️
Ich werde es noch mal so probieren.

0
Idk158 
Beitragsersteller
 10.09.2022, 21:15

Weißt du zufällig wie man alle mit # getrennte Abschnitte in ein Unterprogramm bekommt?

0
Idk158 
Beitragsersteller
 10.09.2022, 21:21
@Idk158

Hat sich erledigt

0