Keyboard-Event
Ich habe ja auch nichts dagegen, das du Tkinter nutzt, aber du musst dennoch etwas weiter in OOP streben, ansonsten fällt dir dein schon guter Ansatz auf die Füße.
Ihr habt ja schon mehr geschrieben - ich war noch am Code von yipyip. Eigentlich wollte ich wirklich nur das Dauerfeuer abstellen, doch ich habe jetzt mal Space-Invaders gespielt und muss, dass Xynon1 recht hat. Man kann nur einen Schuß abgeben, wenn der eine getroffen hat oder aus dem Spielfeld ist. Muss ich noch ändern und dadurch ensteht das Problem mit dem Dauerferuer nicht.
Gruß und Dank Frank
Gruß und Dank Frank
Wollte eigentlich mich nicht zitieren, sondern den Text verbessern.kaytec hat geschrieben:Ihr habt ja schon mehr geschrieben - ich war noch am Code von yipyip. Eigentlich wollte ich wirklich nur das Dauerfeuer abstellen, doch ich habe jetzt mal Space-Invaders gespielt und musste feststellen, dass Xynon1 recht hat. Man kann nur einen Schuß abgeben, wenn der eine getroffen hat oder aus dem Spielfeld ist. Muss ich noch ändern und dadurch ensteht das Problem mit dem Dauerferuer nicht.
Gruß und Dank Frank
Gruß Frank
@Xinon1:
Daß jeweils nur ein Schuss aktiv sein darf, war aus der ursprünglichen Frage aber auch nicht so ersichtlich.
Sollte programmiertechnisch aber auch nicht so ein großes Problem sein.
Kann mich nicht mehr erinnern, wann ich das letzte mal Space Invaders gespielt habe...
@kaytec
Auch wenn wir hier alle Tkinter Liebhaber sind, in diesem Fall hätte ich es doch mit Pygame gemacht.
Willst Du nicht auch noch Sound dazu haben?
yipyip
Daß jeweils nur ein Schuss aktiv sein darf, war aus der ursprünglichen Frage aber auch nicht so ersichtlich.
Sollte programmiertechnisch aber auch nicht so ein großes Problem sein.
Kann mich nicht mehr erinnern, wann ich das letzte mal Space Invaders gespielt habe...
@kaytec
Auch wenn wir hier alle Tkinter Liebhaber sind, in diesem Fall hätte ich es doch mit Pygame gemacht.
Willst Du nicht auch noch Sound dazu haben?
yipyip
Sound kann man doch einbauen zB mit tkSnack.
Wenn man allerdings pygame sound haben willst dann importier doch das einzelne Modul von pygame, das ändert doch nichts daran das die GUI mit Tkinter gebaut ist.
Wenn man allerdings pygame sound haben willst dann importier doch das einzelne Modul von pygame, das ändert doch nichts daran das die GUI mit Tkinter gebaut ist.
Naja, prinzipiell hat Sound eigentlich nichts mit der Grafik zu tun, von daher imho egal.
Aber Paket/Modul Qualität und deren Abhängigkeiten wären Punkte für mich, an den ich mich orientieren würde. Und wenn man keine Abhängigkeiten an pygame haben will ist das tkSnack natürlich "besser".
Edit: Und für Space Inviders ist das natürlich mehr als ausreichend
Aber Paket/Modul Qualität und deren Abhängigkeiten wären Punkte für mich, an den ich mich orientieren würde. Und wenn man keine Abhängigkeiten an pygame haben will ist das tkSnack natürlich "besser".
Edit: Und für Space Inviders ist das natürlich mehr als ausreichend
Was verstehst du unter low-level ?
Der einzige Unterschied ist doch nur das die Tk-KeyEvents nicht als Enum existieren sondern halt als String.
Kannst dir ja ein kleines Modul wie Tkconstants schreiben und einfach die Strings Variablen zuordnen (wem es Spaß macht)
Der einzige Unterschied ist doch nur das die Tk-KeyEvents nicht als Enum existieren sondern halt als String.
Kannst dir ja ein kleines Modul wie Tkconstants schreiben und einfach die Strings Variablen zuordnen (wem es Spaß macht)
Ok, Repeat geht nicht und du hast ja recht pygame ist schon ausgefeilter das Streite ich doch auch gar nicht ab, aber unter "low-level" bei KeyEvent verstehe ich was anderes
Hallo !
http://www.python-forum.de/pastebin.php?mode=view&s=105
Habe mal weiter gebastelt.
Gruß Frank
http://www.python-forum.de/pastebin.php?mode=view&s=105
Habe mal weiter gebastelt.
Gruß Frank
Würde eventuell noch 2 oder 3 alternativ hits einbauen, damit etwas abwechslung rein kommt, aber ansonst (wo ist hier der Daumen-hoch Smile)
Arrgh... jetzt spiele ich doch die ganze Zeit Space Invaders...
Ein kleiner Bug:
Nachdem ich den letzten Gegner abgeschossen habe, friert das Spiel ein und nachdem ich das Fenster schliesse erscheint die Fehlermeldung
yipyip
Ein kleiner Bug:
Nachdem ich den letzten Gegner abgeschossen habe, friert das Spiel ein und nachdem ich das Fenster schliesse erscheint die Fehlermeldung
Da fehlt wohl der Fall, das die Liste der Gegner auch leer sein kann. (nehme ich mal prinzipiell so an, habe mir den Code jetzt nicht so detalliert angeschaut)Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 1413, in __call__
return self.func(*args)
File "/usr/lib/python2.6/lib-tk/Tkinter.py", line 498, in callit
func(*args)
File "<stdin>", line 107, in run
File "<stdin>", line 218, in set_new_positions
IndexError: list index out of range
yipyip
Naja, ist logisch, da er immer noch die Invaders bewegt, obwohl es keine in der Liste mehr gibt.
Sollte man am besten immer wenn ein Invader stirbt, abfragen ob noch welche da sind - aber es gibt ja noch kein GAME OVER in dem Spiel, von daher wird er das sicher noch einbauen.
@kaytec
Wenn ich mir einige Stellen ansehe im Quellcode, solltest du mittlerweil mitbekommen, das es langsam kompliziert wird dort etwas zu editieren.
Du solltest wirklich dringend nochmal genau überlegen was du dort an Quellcode gezielt trennen kannst.
Edit: Achja, das orginal Invaders hatte 224×240 Auflösung, die ist zwar für heutige verhältnisse zu klein, aber es wäre schön das der Maßstab gleich bleibt, also zB. 672x720, weil das ja das Raster, wie die Aliens sich bewegen definiert.
Sollte man am besten immer wenn ein Invader stirbt, abfragen ob noch welche da sind - aber es gibt ja noch kein GAME OVER in dem Spiel, von daher wird er das sicher noch einbauen.
@kaytec
Wenn ich mir einige Stellen ansehe im Quellcode, solltest du mittlerweil mitbekommen, das es langsam kompliziert wird dort etwas zu editieren.
Du solltest wirklich dringend nochmal genau überlegen was du dort an Quellcode gezielt trennen kannst.
Edit: Achja, das orginal Invaders hatte 224×240 Auflösung, die ist zwar für heutige verhältnisse zu klein, aber es wäre schön das der Maßstab gleich bleibt, also zB. 672x720, weil das ja das Raster, wie die Aliens sich bewegen definiert.
Hallo yipyip !
Der Fehler ist mir bekannt - ist ja noch nicht fertig !
Hallo Xyon1!
Na ja, es wird schon komplizierter, doch glaubst du wirklich, dass ich noch irgendwas von dem "Spaghetticode" verstehe ?
Eine gute Doku würde da helfen.
EIne Auflösung von 600 auf 480 ist für Leute mit kleinem Monitor immer noch wichtig - sagt unser Guru BJ.
Gruß Frank
Der Fehler ist mir bekannt - ist ja noch nicht fertig !
Hallo Xyon1!
Na ja, es wird schon komplizierter, doch glaubst du wirklich, dass ich noch irgendwas von dem "Spaghetticode" verstehe ?
Eine gute Doku würde da helfen.
EIne Auflösung von 600 auf 480 ist für Leute mit kleinem Monitor immer noch wichtig - sagt unser Guru BJ.
Gruß Frank
Es geht mir ja nicht direkt um die Auflösung, da hat BlackJack schon recht, sondern es geht mir um das Verhältnis deiner InvaderGUI, denn das ist dann eine andere Fläche in dem sich die Invaders bewegen können.
Du kannst ja die Application auf 600x480 lassen, aber der Raum in dem sich die Aliens bewegen sollte dem orginal entsprechen.
Du kannst ja die Application auf 600x480 lassen, aber der Raum in dem sich die Aliens bewegen sollte dem orginal entsprechen.