Hallo Leute,
ich habe in meinem Spiel einen counter eingebaut, der ein Leben abzieht sobald man stirbt. Ich würde jetzt gerne noch einen zweiten counter im Spiel einbauen, der ein anderes Attribut zählt. Den ersten counter habe ich einfach als "counter" beschrieben und alles hat geklappt. Den zweiten counter habe ich einfach als "counter_2" beschrieben, doch leider zählt der nichts. Ist die Definiton bzw. die Schreibweise des zweiten Counters zu einfach gedacht und geht so nicht?
Danke im Voraus!
Zweiter Counter
Danke für die Bewertung.
Ansonsten so einfach wie oben beschrieben:
global counter
counter = 3
Bei Lebensverlust folgt:
global counter
counter -= 1
if counter ==0:
... hier folgen dann mehrere Anweisungen. Ende des Spiels.
Das hat im Code einwandfrei funktioniert. Jetzt wollte ich noch einen zweiten Counter einbauen, so wie oben.
global counter_2
counter_2 = 0
Bei Attributveränderung:
global counter_2
counter_2 +=1
etc... Leider zählt das Programm dieses Attribut nicht. Liegt es wohlmöglich an der Schreibweise oder ein Logikfehler oder keine Ahnung?
Ansonsten so einfach wie oben beschrieben:
global counter
counter = 3
Bei Lebensverlust folgt:
global counter
counter -= 1
if counter ==0:
... hier folgen dann mehrere Anweisungen. Ende des Spiels.
Das hat im Code einwandfrei funktioniert. Jetzt wollte ich noch einen zweiten Counter einbauen, so wie oben.
global counter_2
counter_2 = 0
Bei Attributveränderung:
global counter_2
counter_2 +=1
etc... Leider zählt das Programm dieses Attribut nicht. Liegt es wohlmöglich an der Schreibweise oder ein Logikfehler oder keine Ahnung?
- __blackjack__
- User
- Beiträge: 13117
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Maestro: Wobei man hier schon sagen kann das ``global`` falsch ist. Ich möchte den Code mit ``global`` eigentlich gar nicht erst sehen. Und auch auch nicht mit Namen wie `counter` und `counter_2`.
Auf Modulebene sollte nur Code stehen der Konstanten, Funktionen, und Klassen definiert. Da stehen/existieren keine Variablen, also braucht man auch kein ``global``. Das Hauptprogramm steht üblicherweise in einer Funktion die `main()` heisst. Und bei jedem nichttrivialen GUI-Programm kommt man um objektorientierte Programmierung nicht herum und dann gibt es auch keinen Grund/keine Ausrede mehr ``global`` zu benutzen.
Auf Modulebene sollte nur Code stehen der Konstanten, Funktionen, und Klassen definiert. Da stehen/existieren keine Variablen, also braucht man auch kein ``global``. Das Hauptprogramm steht üblicherweise in einer Funktion die `main()` heisst. Und bei jedem nichttrivialen GUI-Programm kommt man um objektorientierte Programmierung nicht herum und dann gibt es auch keinen Grund/keine Ausrede mehr ``global`` zu benutzen.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman