Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:snr:informatik:glf23:python:pygame [2023/12/11 19:12] Olaf Schnürerlehrkraefte: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 = "white", groesse = 32):
 +    font = pygame.font.Font(None, groesse)
 +    text = font.render(s, True, farbe, "black")
 +    text_rechteck = text.get_rect()
 +    text_rechteck.center = (x, y)
 +    fenster.blit(text, text_rechteck)
 +</code>
 +===== Fertig-programmierte Spiele =====
 +
 +  * Solo-Pong, 2eNP (nur wenige Zeilen haben gefehlt): {{ :lehrkraefte:snr:informatik:glf23:python:solo-pong-2enp.py |}}
 +  * Solo-Pong, 2pg (der Fehler war: Versehentlich ''ballrichtung'' statt ''ballgeschwindigkeit'' in Zeile 89 geschrieben (was eine neue, nicht weiter verwendete Variable kreiert hat); hier das funktionsfähige Programm mit "diagonal" fliegendem Ball: {{ :lehrkraefte:snr:informatik:glf23:python:pong-solo-2pg.py |}}
 +===== Bibliothek Pygame (python game library) installieren =====
 +
 +<hidden>
 +<WRAP center round box>
 +Öffne die Anwendung/App "Eingabeaufforderung" (= "command prompt" = "Befehlszeile", auf manchen Schul-Windows-Rechnern muss man "cmd" suchen). Gib dort den Befehl ''pip install pygame'' ein, gefolgt von ''Enter'': (''pip'' ist ein Paketverwaltungsprogramm für Python; pip ist ein Akronym für "pip installs packages", vgl. [[https://de.wikipedia.org/wiki/Pip_(Python)|]])
 +{{:lehrkraefte:snr:informatik:glf22:python:install-pygame.png?800|}}
 +
 +Bei Problemen: Vielleicht klappt das Folgende (nicht getestet): Probiere es mit ''python -m pip install pygame''. Auf Apple-Rechnern im Terminal ''pip3 install pygame'' eingeben. Auf manchen Windows-Rechnern machten vermutlich mehrere Python-Versionen Probleme; jedenfalls hat die Deinstallation aller Python-Versionen und Neuinstallation von Python geholften.
 +</WRAP>
 +</hidden>
 +
 +<!--
 +Ideen: pygame installieren
 +
 +Ideen:
 +Kleine Einzelprogramme, eines davon ausführlich erklären:
 +  * (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; Punktestand anzeigen
 +    * Rest machen S selbst (andere Pfeiltasten, andere Ränder)
 +  * Box bewegen, Bewegung, solange Taste gedrückt
 +  * Box bewegen, Bewegungsänderung per Tastendruck, Box bewegt sich ständig
 +  * 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: Solo-Pong, Schritt für Schritt.
 +
 +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:
 +{{ :lehrkraefte:snr:informatik:glf23:python:latex-pong-solo-fuer-lektion.pdf |}}
 +</WRAP>
 +
 +===== Aufgabe: Pong für zwei Spieler =====
 +
 +<WRAP center round todo>
 +Schreibe "Pong für zwei Spieler", Paddles am linken und rechten Spielfeldrand, Spielstand anzeigen.
 +
 +Der linke Spieler steuert beispielsweise mit den Tasten "s" und "w" nach oben und unten, der rechte mit den entsprechenden Pfeiltasten.
 +</WRAP>
 +
 +===== 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 "Äpfel" auf, die an zufälligen Orten entstehen; wer Listen kennt, kann versuchen, Snake zu programmieren
 +  * Zwei Spieler, jeder bewegt ein Quadrat (mit wasd bzw. Pfeiltasten); der eine muss den anderen fangen
 +  * Solo-Pong erweitern: 
 +    * variabler Flugwinkel des Balls, zum Beispiel beim Abprall am Rand des Paddle
 +    * zwei Bälle
 +    * Spielgeschwindigkeit steigt
 +    * Bonus-Leben, wenn man zufällig erzeugte Punkte trifft
 +    * Breakout (dazu sollte man Listen kennen)
 +</WRAP>
 +
 +
 +
 +===== Link zur Kursseite =====
 +
 +[[lehrkraefte:snr:informatik:glf23|Zur Kursseite]]
 +