Seite 2 von 2
Re: Space Invader
Verfasst: Donnerstag 27. Januar 2011, 22:01
von Dauerbaustelle
Kann ich so nicht beantworten, "Test" ist ja jetzt auch kein besonders ausssagekräftiger Name, von daher weiß ich gar nicht, was das überhaupt macht. Da der einzige Zweck der Klasse so weit ich das sehe jedoch nur ist, zwei anderen Daten zu speichern, könnte man vielleicht einfach ganz drauf verzichten...
Re: Space Invader
Verfasst: Donnerstag 27. Januar 2011, 22:26
von kaytec
Habe es halt so wie Space-Invaders augebaut, da ja nicht so ganz klar war wie die Kollisionsabfrage abläuft. Der Name ist nicht gut - sollte auch nur für das Beispiel verwendet werden. Ich wollte eigentlich nur wissen, ob ich eine Klasse, die in den Anfagszustand versetzt werden soll, immer wieder aufrufe oder dies auch nicht gemacht werden sollte ?
Gruß und Dank Frank
Re: Space Invader
Verfasst: Donnerstag 27. Januar 2011, 22:39
von Hyperion
Dauerbaustelle hat geschrieben:Niemals __magische_methoden__ manuell aufrufen. (``self.test.__init__``)
Stimmt so nicht! Manchmal muss man das sogar tun.
Re: Space Invader
Verfasst: Donnerstag 27. Januar 2011, 23:02
von BlackJack
@kaytec: Neue Objekte erstellen ist in Ordnung, nur "resetten" sollte man sie nicht mit der `__init__()`.
Re: Space Invader
Verfasst: Donnerstag 27. Januar 2011, 23:05
von Dauerbaustelle
Hyperion hat geschrieben:Dauerbaustelle hat geschrieben:Niemals __magische_methoden__ manuell aufrufen. (``self.test.__init__``)
Stimmt so nicht! Manchmal muss man das sogar tun.
Muss ich dir natürlich Recht geben. Solange einem allerdings nicht klar ist, was diese Spezialfälle sind, macht es imo mehr Sinn, es als Komplettverbot hinzunehmen. Und wenn sie/er dann irgendwann mal rausfindet, dass man es ja doch in irgend welchen Fällen braucht, wird sofort kognitive Dissonanz mit der Verbotsregel erschaffen, was dazu führt, dass man solche Bösartigkeiten so weit irgend möglich vermeidet. :-)
Re: Space Invader
Verfasst: Donnerstag 27. Januar 2011, 23:06
von Hyperion
Dauerbaustelle hat geschrieben:
Muss ich dir natürlich Recht geben. Solange einem allerdings nicht klar ist, was diese Spezialfälle sind, macht es imo mehr Sinn, es als Komplettverbot hinzunehmen. Und wenn sie/er dann irgendwann mal rausfindet, dass man es ja doch in irgend welchen Fällen braucht, wird sofort kognitive Dissonanz mit der Verbotsregel erschaffen, was dazu führt, dass man solche Bösartigkeiten so weit irgend möglich vermeidet.

*g* so kann man es auch sehen

Re: Space Invader
Verfasst: Donnerstag 27. Januar 2011, 23:30
von kaytec
@ BlackJack Danke !
Re: Space Invader
Verfasst: Freitag 28. Januar 2011, 07:56
von kaytec
Re: Space Invader
Verfasst: Freitag 28. Januar 2011, 09:48
von sisu
Hi!
Welche Funktion hat das rote Ding, das da am oberen Rand herumschwirrt (konnte es bislang nicht treffen)?
Ansonsten, finde das Spiel ziemlich cool, großes Lob! Wünschte, ich könnte auch sowas machen ^^
kaytec hat geschrieben:
irgendwie bin ich ja Masochist - gebe es für die "Codefledder" frei und komme nicht mit den Antworten bzw. Lösungen nach
Ich glaub, du meinst Sadist, oder? ^^
Re: Space Invader
Verfasst: Freitag 28. Januar 2011, 10:18
von EyDu
Du solltest vielleicht noch einmal über "check_collision" nachdenken. Wie lange braucht der Test wohl bei sehr großen Hindernissen... Und warum steht da so viel doppelter Code? Und Warum ist das Ergebnis des if-Statements nicht das Ergebnis der Methode? Und, weshalb übergibst du die x/y-Werte der Positionen einzeln und nicht als Tupel? Fragen über Fragen

Re: Space Invader
Verfasst: Sonntag 30. Januar 2011, 13:55
von kaytec
@ sisu: Danke
Hier eine Kollisionserkennung 2D mit Bounding Boxes (Rechteck um die Objekte) - ist nicht sehr genau, doch für ein einfaches 2D-Spiel ausreichend. -->
http://www.python-forum.de/pastebin.php?mode=view&s=142
Hilfe hatte ich hier gefunden -->
http://www.virtual-maxim.de/pixelgenaue ... erkennung/
Gruß Frank
Re: Space Invader
Verfasst: Sonntag 30. Januar 2011, 19:25
von kaytec
Hallo,
hatte nicht bedacht, dass die x u. y Positionen in der Mitte des Bildes sind.
http://www.python-forum.de/pastebin.php?mode=view&s=143
Gruß Frank
Re: Space Invader
Verfasst: Freitag 15. April 2011, 20:02
von kaytec
Re: Space Invader
Verfasst: Freitag 6. Juli 2012, 11:44
von kaytec
Re: Space Invader
Verfasst: Sonntag 22. Juli 2012, 19:12
von darktrym
Was auffällt sind:
Gibst irgendwelche Performanzvorteile, wenn du in check_collision statt target.width lieber target_width nutzt? Wenn du Rechnungen einsparen willst, dann rechne nicht ständig die Hälfte von konstanten Variablen aus.
Muss wirklich sein?
Wieso keine eck. Klammern?
Lager mal die Daten aus und bei den vielen Präfixen könnten Objekte sicher den Lesefluss erhöhen.
Bei mir hängt er gerne mal beim Richtungswechsel.
Wenn du schon einen Start-Screen hast, hättest du wenigstens die Steuerung und Schusstaste erwähnen können. ESC ist sicher den Spieler bekannt, das engl. Wörterbuch kennt den Begriff nicht.
Re: Space Invader
Verfasst: Donnerstag 26. Juli 2012, 17:34
von kaytec
Hallo darktrym !
Ich erhoffe keine Performanzvorteile - bin froh das es läuft

. Jeder Gegner, Bomben, Racketen sind "Invadersobjekte" und mit dem Punkt komme ich an die Werte.
Hälfte von konstanten Variablen ?
self.game_run --> musste mal sein - habe ich auch schon überlegt wieder rauszunehmen.
self.screen_text = list() --> hat mal Black Jack so gesagt, damit man den Typ erkennt.
Die Steuerung hängt bei mir nicht.
Was sind Präfixe ? Daten auslagern - Meinst Du die Bilder und Konstanten ? So bleibt beim Posten alles zusammen.
Die Feuertaste habe ich in der jetzigen Version eingefügt - ist mir bei dieser gar nicht aufgefallen.
ESC --> European Securities Committee
Gruß Frank und Dank für die Kritik