pygame Video tutorials

Gute Links und Tutorials könnt ihr hier posten.
Antworten
Benutzeravatar
name
User
Beiträge: 254
Registriert: Dienstag 5. September 2006, 16:35
Wohnort: Wien
Kontaktdaten:

http://name.xieke.com/pygametut/
Hoffe es hilft jemandem, der Sound is etwas komisch und net ganz meine Stimme weil mein Headset net ganz so gut is und ich auch noch in audacity nachbearbeitet habe..
Bis jetzt lernt man wie man ein Kasterl(Quadrat) mit den Pfeiltasten herumbewegt.
Ich wuerde die tar.bz2 empfelen weil sie beide Tutorials beinhaltet und um einiges kleiner als die Videodatein.
Die Videos sind in 1280x1024 und mit dem xvid codec codiert.
Verwendet werden
* easyeclipse fuer python
* Python 2.4.4
* pygame 1.7.1
Windows wird verwendet weil da das aufnehmen einfacher ist, normalerweise verwende ich easyeclipse unter Linux.

Bitte konstruktive Kritik :)

PS. Link zum Sourcecode
Zuletzt geändert von name am Mittwoch 3. Januar 2007, 22:44, insgesamt 1-mal geändert.
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

name hat geschrieben:Bitte konstruktive Kritik :)
Meine Bemerkungen, nachdem ich mir den ersten Teil angesehen habe (sind natürlich alle Konstruktiv gemeint):
  • Warum sind einige Variablen groß geschrieben?
  • Die deklaration Screen.__init__ ist nicht PEP8-kompatibel
  • Es wird keine Shebang genutzt, kein Encoding angegeben und auch keine main()-Funktion, die per __main__-Trick aufgerufen wird. Das sind alles gute Praktiken, die man sich generell angewöhnen sollte.
  • Keinen Menschen interessiert es, im ersten Pygame-Programm die Version von pygame und der libSDL anzuzeigen.
  • Du nutzt pygame 1.7.1 nicht 1.7.7 ;)
  • Die Videoqualität ist gut, mit der Wahl des Codecs selbst bin ich zufrieden.
  • Die Soundqualitätist in der Tat etwas schlecht, man hört auch noch allerhand lustige Hintergrundgeräusche :)
  • Werd mir gleich das zweite ansehen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
name
User
Beiträge: 254
Registriert: Dienstag 5. September 2006, 16:35
Wohnort: Wien
Kontaktdaten:

Das werd ich im 3ten ausbessern :)
Sound ist echt etwas schlecht, 96kbit mp3 halt..
Naja wenn wer bug reports macht kann die Pygame und SDL version schon helfen :) Ist ausserdem irgentwie ein Ritual bei meinen pygame sachen ;-)
Leonidas hat geschrieben:
  • Die deklaration Screen.__init__ ist nicht PEP8-kompatibel
wie meinen?
Warum sind einige Variablen groß geschrieben?
Ich schreibe normalerweise alle Instanzen gross, ist das schlecht? was is denn sonst noch gross, so auf die schnelle seh ich nix..
Wenn du das 2te gesehen hast sag auch wieder was net so toll war, ich weiss da hab ich einen Fehler gemacht :)
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

name hat geschrieben:Naja wenn wer bug reports macht kann die Pygame und SDL version schon helfen :)
Ist das in einem deiner Tutorials geplant? Wenn nicht, dann ist das zwecklos. Ich gebe ja auch nicht die Kernelversion bei jedem meiner Programme aus, ebensowenig wie ich die Versionen sämtlicher von mir benutzter Module und Libs anzeige. "Python: 2.5, OpenSSL 0.9.8d", etc.
Noch dazu finde ich, dass Pygame eher wenige Bugs hat. Könnte auch daran liegen, dass die Fehler eine Ebene drunter, in der libSDL liegen.
name hat geschrieben:
Leonidas hat geschrieben:
  • Die deklaration Screen.__init__ ist nicht PEP8-kompatibel
wie meinen?
Naja, eigentlich laufen die ganzen Namen die un einsetzt PEP8 entgegen. Das ist der Python Styleguide, lies ihn dir mal durch.
Es geht darum dass man statt handleEvents handle_events nutzt, statt self,main,etc self, main, etc (also mit Klammern), etc etc. Ansonsten finde ich den Namen obj sehr sinnlos, da sollte man sich wirklich aussagekräftige Namen ausdenken. Auch das die Klassen einander übergeben werden finde ich ziemlich verwirrend. So sehr ich die Aufteilung der Klassen begrüße, so ist diese Aufteilung irgendwie ungelungen, da man um etwas mit den Klassen zu machen, sowieso alle Klassen braucht.
name hat geschrieben:
Warum sind einige Variablen groß geschrieben?
Ich schreibe normalerweise alle Instanzen gross, ist das schlecht? was is denn sonst noch gross, so auf die schnelle seh ich nix..
Es ist einfach seltsam, weil du dann jeden Namen groß schrieben müsstest. In Python ist jedes Objekt, welches du an einen Namen bindest eine Instanz, also sind bei dir Namen manchmal groß, manchmal klein, ohne dass es einen Sinn hat.
name hat geschrieben:Wenn du das 2te gesehen hast sag auch wieder was net so toll war, ich weiss da hab ich einen Fehler gemacht :)
Du hast in den Kommentaren, ganz oben in den ersten zwei Zeilen noch einen Vertipper. Kann dir allerdings nicht sagen, was das war, weil im Quellcode im Pastebin, diese Zeilen fehlen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
name
User
Beiträge: 254
Registriert: Dienstag 5. September 2006, 16:35
Wohnort: Wien
Kontaktdaten:

Leonidas hat geschrieben: Es ist einfach seltsam, weil du dann jeden Namen groß schrieben müsstest. In Python ist jedes Objekt, welches du an einen Namen bindest eine Instanz, also sind bei dir Namen manchmal groß, manchmal klein, ohne dass es einen Sinn hat.
Stimmt, mein Fehler

Wie wuerdest du das mit dem Instanzen uebergeben regeln, ich sagte ja im Video das ich das mache aber jeder kann das auf seinem weg machen, geht ja um pygame, net um python(stil) :)
Was wuerdest du ihm in nem X/10 Rating geben? :)
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

name hat geschrieben: [...]Video das ich das mache aber jeder kann das auf seinem weg machen, geht ja um pygame, net um python(stil) :)
Ansich stimmt die Aussage, aber man sollte mit besten Beispiel voran gehen :) Was glaubst du wo diese ganzen * imports herkommen, besonders bei Tutorials zu Tkinter (import Tkinter *)? Dan kommen Anfänger Lesen das Tutorial, gehen davon aus das es so richtig ist und übernehmend das dann mit dem Ergebnis das sie was gelernt habe was absolut schlechter Stil ist.

BTW: Hab dein Video noch nicht gesehen und werde es morgen nachholen :)

lg und n8
sape
Benutzeravatar
name
User
Beiträge: 254
Registriert: Dienstag 5. September 2006, 16:35
Wohnort: Wien
Kontaktdaten:

sape hat geschrieben:
name hat geschrieben: [...]Video das ich das mache aber jeder kann das auf seinem weg machen, geht ja um pygame, net um python(stil) :)
Ansich stimmt die Aussage, aber man sollte mit besten Beispiel voran gehen :) Was glaubst du wo diese ganzen * imports herkommen, besonders bei Tutorials zu Tkinter (import Tkinter *)? Dan kommen Anfänger Lesen das Tutorial, gehen davon aus das es so richtig ist und übernehmend das dann mit dem Ergebnis das sie was gelernt habe was absolut schlechter Stil ist.

BTW: Hab dein Video noch nicht gesehen und werde es morgen nachholen :)

lg und n8
sape
Das Tut setzt aber Python Kenntnisse vorraus ;)
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich würde ein Rectangle-Objekt machen, welches sein eigenes Surface hat (also nicht ein Surface übernimmt), und das dann in der draw-Funktion eine Screen-Instanz mitgekommt, auf welche es sich blitten darf. Statt pos würde ich self.x und self.y nehmen, oder eher noch self.x_coord und self.y_coord. Move würde ich in move_down, move_up, etc aufteilen.
Die Screen-Klasse würde ich komplett weglassen und sie in Main() einverleiben. Achja, ich würde zwischen die Funktionen und die Klassen Leerzeilen machen. Erleichtern das Lesen.

Auf eine Wertung verzichte ich, nur soviel dass ich generell Programmieren nicht aus Screencasts lerne. Programmieren ist für mich eher eine Hands-on-Sache. Screencasts sind brauchbar, wenn man sich zum Beispiel entscheiden will (so ist das Webframeworks-Screencast genial), oder einen allgemeinen Einblick haben will. Jemandem beim Tippen zuschauen finde ich eher uninspirierend.

Was den Stil angeht, schließe ich mich sape natürlich an. Guter Stil ist eben nicht optional.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

Ich finde die Idee auf jeden Fall sehr gut. Dass Pygame da behandelt wird, finde ich sogar noch besser! :D
Leider funktioniert das Video bei mir nicht unter Linux. Keine Ahnung woran das liegen mag. :(

Mach auf jeden Fall weiter!
Gruß!
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Hi name, hab mir die beiden Vids angesehen und finde die soweit OK, bis auf die Sachen die Leonidas schon angesprochen hat und das du anscheinend keine Leerzeilen nutzt um Klassen/Funktionen voneinander zu trennen. :?
Das bisher angesprochene würde ich jedenfalls in deinen nächsten Tutorials berücksichtigen. Wenn es nicht zu umständlich ist, würde ich auch darüber nachdenken die 2 Vids nochmal neu zu machen.

lg
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

C4S3 hat geschrieben:Leider funktioniert das Video bei mir nicht unter Linux. Keine Ahnung woran das liegen mag. :(
Deine Software unterstützt wohl die Codecs nicht. Bei mir ging es mit Ubuntu 6.06 Out-of-the-Box. Also gegebenfalls benötigtes nachinstallieren, hängt natürlich von deiner Distribution ab.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

naja, mein Mandriva hat jetzt auch schon ein Jahr auf dem Buckel. Ich sehe mit VLC zwar einen Screen, aber habe so schwere Darstellungsfehler, dass ich gar nix erkenne. Und er Sound ist, als ob Darth-Vader sprechen würde.

Aber der Trost ist: unter Windows geht es weder mit VLC, noch mit WinAmp und mit dem MediaPlayer auch nicht. Wäre euch dankbar, wenn mir jemand sagen könnte, womit man sowas den abspielt, bzw. was das für ein AVI-codec ist, den ich da brauche.... :(
Gruß!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

C4S3 hat geschrieben:Aber der Trost ist: unter Windows geht es weder mit VLC, noch mit WinAmp und mit dem MediaPlayer auch nicht. Wäre euch dankbar, wenn mir jemand sagen könnte, womit man sowas den abspielt, bzw. was das für ein AVI-codec ist, den ich da brauche.... :(
XviD (habe ich schon erwähnt, dass ich zum Video gucken Media Player Classic empfehle?). Aber eine aktuelle Version von VLC sollte eigentlich auch tun.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
C4S3
User
Beiträge: 292
Registriert: Donnerstag 21. September 2006, 10:07
Wohnort: Oberösterreich

Habs unter Windoof jetzt doch nocht hinbekommen. Danke.

Freu mich schon auf den 2ten Teil!
Gruß!
Antworten