Puh... zum Code kann man viel sagen.
@2.) Du musst das Bild auf einen Webspace laden und dann hier verlinken. imageshack und Konsorten bieten sich da an.
@Code: Ich habe ihn nur mal überflogen, daher sind folgende Dinge nicht vollständig:
- feste Pfade im Code - damit wird Dein Spiel de facto unspielbar bei anderen Usern und die Wartung erschwert sich.
- krude Namen. Was ist ``Patrone_e`` im Gegensatz zu ``Patrone``?
- die Event-Abfrage in einem Spieler-Objekt halte ich für eher unelegant. Es ist ja logisch, dass ein Spiel auf Tasten reagieren muss - aber dahinter steckt ja eher der Spieler im Sinne von ``Benutzer`` und nicht des Objekts, welches einen Avatar repräsentiert. Aber darüber mag man streiten können. In Sinne der Unabhängigkeit von GUI und Logik wäre meine Ansicht aber vertretbar.
- Wenn du den Zähler in einer Schleife nicht brauchst, dann bietet sich ``_`` als Name an:
Code: Alles auswählen
# bei dir:
for i in range(gegner):
e_g.add(Enemy((pygame.display.get_surface().get_width()/2,50),pat_g))
# lesbarer
for _ in range(gegner):
pass
Bei Python2 solltest Du auch eher ``xrange`` verwenden.
- Du solltest Die ``main``-Funktion folgendermaßen aufrufen.
- vermeide *-Importe!
- viele Magic Numbers. Wieso setzt Du Attribute auf fixe Werte? Default-Werte sind ja ok, aber wieso kan man die bei der Erstellung eines Objekts nicht gleich festlegen?
Code: Alles auswählen
class Player(...):
def __init__(self, image, leben=100):
self.image = image
self.leben = leben
Ähnliches kann man bei den Zufallszahlen (in ``Enemy``) beobachten.
- Du mischt Deutsch und Englisch bei Deinen Namen. Du solltest das konsolidieren.
- Am Schluss das wichtigste: Es fehlt jegliche Dokumentation! Ohne die ist der ganze Code quasi wertlos, da Du selber in wenigen Wochen den Überblick verlieren wirst. Python bietet Dir doch sogar mit den Doc-Strings ein eingebautes Sprachmittel. Nutze das!