Space Invader
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
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...
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
Gruß und Dank Frank
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Stimmt so nicht! Manchmal muss man das sogar tun.Dauerbaustelle hat geschrieben:Niemals __magische_methoden__ manuell aufrufen. (``self.test.__init__``)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
@kaytec: Neue Objekte erstellen ist in Ordnung, nur "resetten" sollte man sie nicht mit der `__init__()`.
-
- User
- Beiträge: 996
- Registriert: Mittwoch 9. Januar 2008, 13:48
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. :-)Hyperion hat geschrieben:Stimmt so nicht! Manchmal muss man das sogar tun.Dauerbaustelle hat geschrieben:Niemals __magische_methoden__ manuell aufrufen. (``self.test.__init__``)
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
*g* so kann man es auch sehenDauerbaustelle 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.

encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
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 ^^
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 ^^
Ich glaub, du meinst Sadist, oder? ^^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![]()
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 

Das Leben ist wie ein Tennisball.
@ 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
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
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
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
Hallo !
Habe weiter gebastelt --> http://www.python-forum.de/pastebin.php?mode=view&s=292
Gruß Frank
Habe weiter gebastelt --> http://www.python-forum.de/pastebin.php?mode=view&s=292
Gruß Frank
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.
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.
Code: Alles auswählen
self.game_run == False:
Code: Alles auswählen
self.screen_text = list()
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.
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
Ich erhoffe keine Performanzvorteile - bin froh das es läuft

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