Zeige das Hintergrundbild (Auflösung 800x800) an und erstelle einen Actor für dein Auto (Auflösung 60x121). Dieses soll am unteren Bildrand erscheinen.
Lasse dein Auto mit Hilfe der Pfeiltasten zwischen dem linken und rechten Rand der Strasse (jeweils 100 Pixel vom Bildrand) hin- und herbewegen.
Füge mehrere Autos als Actor wie folgt hinzu:
Erstelle eine leere Liste autos.
Erstelle eine Schleife für die Anzahl anderer Autos.
Erstelle in der Schleife neue Actors von Autos mit sinnvoller zufälliger Anfangsposition. Die Farbe der fremden Autos soll anders sein als die Farbe des eigenen Autos (aber gleich für alle fremden Autos).
Füge die Autos der Liste hinzu.
Die Autos sollen dargestellt werden.
Die Autos sollen sich bewegen (rückwärts, da das eigene Auto schneller fährt, aber stets unten bleibt).
Überlege dir, was mit den Autos geschehen soll, wenn sie unten aus dem Bild verschwinden.
Versuche, für alle fremden Auto eine zufällige Farbe zu definieren (aber nie soll die Farbe deines Autos für fremde Autos verwendet werden).
mehr
Denke daran, für die fremden Autos stets die Liste autos und nie individuelle Variablen zu verwenden.
Um die fremden Autos zu zeichnen, verwendest du eine Schleife in der draw()-Funktion. So kannst du für jedes Element der Liste (also für jedes Auto) dessen draw()-Funktion aufrufen.
Auch das Bewegen der Autos in der update()-Funktion geschieht in einer Schleife. Du besuchst somit jedes fremde Auto und veränderst die y-Position.
Zufällige Farbe für fremde Autos: Nimm alle Auto-Bilder als Strings in eine Liste AUTO_BILDER auf. Wähle dann einen zufälligen Wert dieser Liste beim Erstellen der fremden Autos.
Lösung: Verkehr (nicht angemeldet) Diese Lösung ist nur für angemeldete Benutzer zugänglich – wenn die LK die Lösung freigegeben hat. Bitte melde dich an, um die Lösung einsehen zu können.
Aufgabe: Weitere Ideen
Hier einige weitere Ideen:
Die Autos sollen nicht zufällig auf der x-Achse verteilt werden, sondern in vorgegebenen Spuren fahren, so dass sie untereinander nicht kollidieren.
Das Spiel soll mit der Zeit leicht schwieriger werden (z.B. indem die Autos näher bei einander fahren oder deren Geschwindigkeit sich steigert).
Prüfe bei jedem Update, ob dein Auto mit einem fremden Auto kollidiert, indem du die Funktion objekt1.colliderect(objekt2) aufrufst. Das Resultat ist True oder False, lässt sich also in einem if prüfen. Wie könntest du darauf reagieren?
Füge als zusätzlichen separaten Actor die Mittellinie hinzu und lasse diese auch bewegen, damit die Fahr-Illusion noch verstärkt wird. Das Bild der Linie ist doppelt so gross wie die Strasse, damit sie verschoben werden kann.
Zeige bei einer Kollision auf der richtigen Seite deines Autos das Bild «boom» an.
Führe einen Punktestand ein und zeige diesen an. Der Text in der Variablen text kann mit dem Befehl screen.draw.text(text, (x, y)) an der Position (x|y) angezeigt werden (weitere Infos zur Gestaltung der Texte finden sich in der Pygame Zero-Dokumentation).
Bei einem Crash sollen Punkte abgezogen werden.
Sobald der Punktestand unter 0 sinkt, soll das Spiel beendet werden.
Für jedes überholte Auto sollen Punkte gutgeschrieben werden.