Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| lehrkraefte:snr:informatik:glf23:python:pygame [2023/12/20 08:44] – [Fertig-programmierte Spiele] Olaf Schnürer | lehrkraefte:snr:informatik:glf23:python:pygame [2023/12/20 08:44] (current) – [Fertig-programmierte Spiele] Olaf Schnürer | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~NOTOC~~ | ||
| + | |||
| + | ====== Spielprogrammierung mit PyGame ====== | ||
| + | |||
| + | <code python> | ||
| + | def schreibe(s, x, y, farbe = " | ||
| + | font = pygame.font.Font(None, | ||
| + | text = font.render(s, | ||
| + | text_rechteck = text.get_rect() | ||
| + | text_rechteck.center = (x, y) | ||
| + | fenster.blit(text, | ||
| + | </ | ||
| + | ===== Fertig-programmierte Spiele ===== | ||
| + | |||
| + | * Solo-Pong, 2eNP (nur wenige Zeilen haben gefehlt): {{ : | ||
| + | * Solo-Pong, 2pg (der Fehler war: Versehentlich '' | ||
| + | ===== Bibliothek Pygame (python game library) installieren ===== | ||
| + | |||
| + | < | ||
| + | <WRAP center round box> | ||
| + | Öffne die Anwendung/ | ||
| + | {{: | ||
| + | |||
| + | Bei Problemen: Vielleicht klappt das Folgende (nicht getestet): Probiere es mit '' | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <!-- | ||
| + | Ideen: pygame installieren | ||
| + | |||
| + | Ideen: | ||
| + | Kleine Einzelprogramme, | ||
| + | * (quadratische) Box bewegen, ein Feld pro Tastendruck | ||
| + | * zwei Pfeiltasten erklären (eventuell bewusst falsch), | ||
| + | * auf einer Seite das Verlassen des Feldes verbieten | ||
| + | * evtl. Punkt verteilen, wenn man etwas erreicht? etwa Apfel an Zufallsposition; | ||
| + | * Rest machen S selbst (andere Pfeiltasten, | ||
| + | * Box bewegen, Bewegung, solange Taste gedrückt | ||
| + | * Box bewegen, Bewegungsänderung per Tastendruck, | ||
| + | * rechteckige Box bewegen (als Vorstufe zu Pong) | ||
| + | * zwei Boxen bewegen, Check auf Kollision per Funktion | ||
| + | * Mausklick, Koordinaten erhalten | ||
| + | * Ball, der reflektiert wird | ||
| + | * zweiten Ball programmieren lassen | ||
| + | * S schreiben Pong oder Breakout o.ä. ball and paddle | ||
| + | * Snake? Feste Länge? oder per Liste! | ||
| + | * fehlerhafte Programme zur Verfügung stellen | ||
| + | --> | ||
| + | |||
| + | ===== Einführung am Beispiel: Solo-Pong vertikal ===== | ||
| + | |||
| + | <WRAP center round todo 100%> | ||
| + | Gemeinsames angeleitetes Programmieren: | ||
| + | |||
| + | Letzten Schritt eventuell nicht erkären, damit man das Denken nicht ganz verlernt. | ||
| + | |||
| + | Vorlage für Lehrer, eigentlich benötigt man nur die ersten beiden Seiten: | ||
| + | {{ : | ||
| + | </ | ||
| + | |||
| + | ===== Aufgabe: Pong für zwei Spieler ===== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Schreibe "Pong für zwei Spieler", | ||
| + | |||
| + | Der linke Spieler steuert beispielsweise mit den Tasten " | ||
| + | </ | ||
| + | |||
| + | ===== Aufgabe: Eigenes Spiel schreiben ===== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Schreibe ein eigenes Spiel (oder verbessere das gemeinsam programmierte Solo-Pong)! | ||
| + | |||
| + | Vorschläge: | ||
| + | * Bewege ein Quadrat mit Hilfe der Pfeiltasten in alle vier Richtungen; sammle dabei " | ||
| + | * Zwei Spieler, jeder bewegt ein Quadrat (mit wasd bzw. Pfeiltasten); | ||
| + | * Solo-Pong erweitern: | ||
| + | * variabler Flugwinkel des Balls, zum Beispiel beim Abprall am Rand des Paddle | ||
| + | * zwei Bälle | ||
| + | * Spielgeschwindigkeit steigt | ||
| + | * Bonus-Leben, | ||
| + | * Breakout (dazu sollte man Listen kennen) | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Link zur Kursseite ===== | ||
| + | |||
| + | [[lehrkraefte: | ||
| + | |||