Hallo Forum,
Ich kenne mich leider noch nicht wirklich gut mit Python aus.
Aber Python interessiert mich und deshalb kenne ich auch schon grundlegende
Elemente. Jetzt habe ich vor ein kleines relativ simples Spiel zu entwickeln am liebsten
mit grafischer Oberfläche (vorzugsweise Tkinter). Da ich habe noch nicht weiß wie ich anfangen
soll und worauf ich achten muss, habe ich gehofft ihr zeigt mir ein paar Programme/Codes,
womit ich mir einen guten Überblick verschaffen kann und hinterher meine eigenen Ideen einfließen lassen kann.
Codebeispiele für einfache Spiele
Hallo,
schau' Dich doch mal bei pygame um, dort findest Du jede Menge kleinere und größere Spiele und deren Quellcode. IMHO wirst Du mit pygame auch glücklicher als mit tkinter, wenn es darum geht, ein Spiel zu programmieren.
mutetella
EDIT: Leider ist pygame.org gerade down, musste halt später nochmal versuchen... (ist heute schon die zweite Seite, die nicht erreichbar ist... grml...)
schau' Dich doch mal bei pygame um, dort findest Du jede Menge kleinere und größere Spiele und deren Quellcode. IMHO wirst Du mit pygame auch glücklicher als mit tkinter, wenn es darum geht, ein Spiel zu programmieren.
mutetella
EDIT: Leider ist pygame.org gerade down, musste halt später nochmal versuchen... (ist heute schon die zweite Seite, die nicht erreichbar ist... grml...)
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
@mutetella: Ob `Tkinter` reicht oder nicht hängt IMHO auch vom Spiel ab. Es gibt Spiele da ist Pygame besser geeignet, welche wo beides geht, und sogar welche wo `Tkinter` besser geeignet ist. Zum Beispiel dann wenn man weniger individuelle Grafik, dafür aber viele „traditionelle” GUI-Elemente benötigt, die man sich in Pygame erst selber programmieren müsste.
@Kinimo: Da wäre jetzt also die Frage was für ein Spiel Du schreiben möchtest.
@Kinimo: Da wäre jetzt also die Frage was für ein Spiel Du schreiben möchtest.
Danke schon mal für die Antworten
@BlackJack
Ich bin da für alles offen von snake, ping pong, tetris bis zu 2D jump and run spiele.
Aber es wäre auf jeden viel cool, wenn ich diese grafisch darstellen könnte, bei einem simplen
Spiel hatte ich gehofft, dass Tkinter ausreicht aber wie gesagt, ich bin bereit neues zu lernen!
@BlackJack
Ich bin da für alles offen von snake, ping pong, tetris bis zu 2D jump and run spiele.
Aber es wäre auf jeden viel cool, wenn ich diese grafisch darstellen könnte, bei einem simplen
Spiel hatte ich gehofft, dass Tkinter ausreicht aber wie gesagt, ich bin bereit neues zu lernen!
@Kinimo: Also Snake, Pong, und Tetris dürften kein Problem sein mit Tkinter. Für ein Jump'n'Run wäre Pygame wahrscheinlich besser geeignet.
@Kinimo: Grundsätzlich erst einmal wie Tetris funktioniert und welche Bestandteile dafür entworfen und programmiert werden müssen. Dann musst Du Dir überlegen mit welchen Datenstrukturen Du die Bestandteile von dem Spiel am besten im Programm repräsentierst. Also zum Beispiel wie Du die Spielsteine und das Spielfeld intern darstellen willst und welche Operationen auf diesen Objekten benötigt werden. Zum Beispiel das man die Steine drehen können muss. Oder das man einen Test braucht der volle Zeilen ohne „Löcher” auf dem Spielfeld erkennen kann. Das hat übrigens alles noch gar nichts mit der Grafik zu tun! Das ist dann aber auch etwas was man irgendwann braucht: Code der die interne Repräsentation des Spiels auf eine grafische Anzeige abbildet.
Das hört sich ja dann doch ziemlich schwierig an
Kannst du mir da i.wie ein Beispiel Programmierprojekt zeigen oder ein Link einfügen, woran ich mich entlang hangeln kann um die kompelxe Struktur erstmal nach vollziehen zu können. :K
Denn bisher konnte ich erst mit einem Objekt umgehen und Listen braucht man bestimmt auch.
Kannst du mir da i.wie ein Beispiel Programmierprojekt zeigen oder ein Link einfügen, woran ich mich entlang hangeln kann um die kompelxe Struktur erstmal nach vollziehen zu können. :K
Denn bisher konnte ich erst mit einem Objekt umgehen und Listen braucht man bestimmt auch.
@Kinimo: Ja, Listen wären für Tetris sicher praktisch. Was meinst Du „mit einem Objekt” umgehen? Man müsste selber Klassen schreiben. Zum Beispiel eine Klasse für die Spielsteine. Und eine für das Spielfeld. Und später dann welche für die Benutzeroberfläche, zum Beispiel für die Darstellung des Spielfelds.
Man muss ein grösseres Problem auf kleinere Teilprobleme aufteilen. Und die dann auch wieder aufteilen. Solange bis man die einzelnen Teilprobleme einfach jeweils mit ein paar Zeilen Code lösen kann. Und die Teillösungen setzt man dann zu grösseren Teilllösungen zusammen bis man eine Gesamtlösung hat.
Tetris ist vielleicht nicht so praktisch weil man das nicht so gut ohne GUI umsetzen kann. Was im Grunde auch für Snake und Pong gilt. Die lassen sich aber IMHO etwas einfacher modellieren weil die nicht ganz so komplex sind wie Tetris.
Man muss ein grösseres Problem auf kleinere Teilprobleme aufteilen. Und die dann auch wieder aufteilen. Solange bis man die einzelnen Teilprobleme einfach jeweils mit ein paar Zeilen Code lösen kann. Und die Teillösungen setzt man dann zu grösseren Teilllösungen zusammen bis man eine Gesamtlösung hat.
Tetris ist vielleicht nicht so praktisch weil man das nicht so gut ohne GUI umsetzen kann. Was im Grunde auch für Snake und Pong gilt. Die lassen sich aber IMHO etwas einfacher modellieren weil die nicht ganz so komplex sind wie Tetris.
Fang doch einfach mal mit Tic Tac Toe an, da kannst du gut schrittweise vorgehen. Am besten schreibst du es als erstes so, dass man auf der Konsole spielen kann. Dann kannst du dein Programm um eine Oberfläche mittels Tkinter erweitern. Abschließend bietet sich noch eine KI an, damit du auch gegen den Computer spielen kannst. Bei Tic Tac Toe ist das besonders einfach, daher gut für einen Einstieg geeignet.
Bie so einem kleinen Projekt ist es dann auch nicht so schlimm wenn du mal etwas größere Fehler machst. Dann wirfst du den Code halt noch einmal weg und schreibst ihn vernünftig auf. Das wird dir am Anfang sicher häufiger passieren, ist aber ganz normal. Auf jeden Fall sind deine Ziele/Spielideen realistisch und alle gut umsetzbar.
Bie so einem kleinen Projekt ist es dann auch nicht so schlimm wenn du mal etwas größere Fehler machst. Dann wirfst du den Code halt noch einmal weg und schreibst ihn vernünftig auf. Das wird dir am Anfang sicher häufiger passieren, ist aber ganz normal. Auf jeden Fall sind deine Ziele/Spielideen realistisch und alle gut umsetzbar.
Das Leben ist wie ein Tennisball.
Hier findest du viele Codebeispiele für Pygame, nämlich ch16 bis ch19.zip:
http://www.manning.com/sande/sourcecode ... y_Chapter/
Aus dem Buch http://www.manning.com/sande/
Ist zwar für Python bis 2.7 vorgesehen, aber mit meinem Python3.3/Python3.2.0 (64bit, windows 8 bzw. Ubuntu 12.04) und den entsprechenden Pygames klappt es mit kleinen Änderungen ebenfalls
http://www.manning.com/sande/sourcecode ... y_Chapter/
Aus dem Buch http://www.manning.com/sande/
Ist zwar für Python bis 2.7 vorgesehen, aber mit meinem Python3.3/Python3.2.0 (64bit, windows 8 bzw. Ubuntu 12.04) und den entsprechenden Pygames klappt es mit kleinen Änderungen ebenfalls
Gruss,
siggi
siggi
Der Vollständigkeit halber:
Python/Pygame code listings (Downloadseite, s. obiges Posting):
* Skier, Listing 10.1: ein Skifahrer fährt abwärts, vermeidet Zusammenstoß mit Bäumen (Punkteabzug) und versucht Fähnchen zu sammeln (Punktegewinn)
* PyPong, Listing 19.5: Ballspiel mit Paddle, Hintergrundmusik und Sounds. Die Listings 16.1 bis 19.4 dienen der Einführung in Pygame und der schrittweisen Einführung in PyPong
* Lunar Lander, Listing 24.1: Computersimulation einer Mondlandung. Es ist gar nicht so einfach, den Schub des Raumfahrzeugs so einzustellen, dass eine weiche Mondlandung stattfindet.
Python/Pygame code listings (Downloadseite, s. obiges Posting):
* Skier, Listing 10.1: ein Skifahrer fährt abwärts, vermeidet Zusammenstoß mit Bäumen (Punkteabzug) und versucht Fähnchen zu sammeln (Punktegewinn)
* PyPong, Listing 19.5: Ballspiel mit Paddle, Hintergrundmusik und Sounds. Die Listings 16.1 bis 19.4 dienen der Einführung in Pygame und der schrittweisen Einführung in PyPong
* Lunar Lander, Listing 24.1: Computersimulation einer Mondlandung. Es ist gar nicht so einfach, den Schub des Raumfahrzeugs so einzustellen, dass eine weiche Mondlandung stattfindet.
Gruss,
siggi
siggi
Habe eben erst gesehen, dass es hier auch um Tkinter ging. Deshalb noch was für Python/Tkinter, das Stickmanspiel, läuft bei mir auf Python2 (dann Tkinter aufrufen), und Python3 (dann tkinter aufrufen). Gar nicht so leicht, den Stickman mittels <left>, <right> und <Leertaste> über die Barrieren bis nach oben zur Tür hüpfen zu lassen!
Es ist Chapter 18, stickmangame7.py auf
http://jasonrbriggs.com/python-for-kids/code.html
Es ist Chapter 18, stickmangame7.py auf
http://jasonrbriggs.com/python-for-kids/code.html
Gruss,
siggi
siggi