Benutzer-Werkzeuge

Webseiten-Werkzeuge


python:pgzero:projekt1

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
python:pgzero:projekt1 [2021/03/20 16:24] – [Auf den Mausklick reagieren] lutzpython:pgzero:projekt1 [2024/03/12 09:24] (aktuell) – [Die Spielfigur zufällig platzieren] lutz
Zeile 96: Zeile 96:
  
 ====Die Spielfigur zufällig platzieren==== ====Die Spielfigur zufällig platzieren====
 +Bisher ist das Spiel noch recht langweilig, weil Homer immer auf der selben Position erscheint. Im nächsten Schritt soll nun Homer bei jeden Treffer neu platziert werden.
 +
 +Schreibe die folgende Anweisung an den Anfang deiner Datei:
 +
 +<code python>
 +from random import randint
 +</code>
 +
 +Ändere die Funktion ''%%place_homer()%%'' wie folgt ab:
 +
 +<code python>
 +def place_homer():
 +    homer.x = randint(10, 800)
 +    homer.y = randint(10, 600)
 +</code>
 +
 +Füge nach der Anweisung ''%%print("Treffer!")%%'' die Anweisung ''%%place_homer()%%'' ein:
 +
 +<code python>
 +        ...
 +        print("Treffer!")
 +        place_homer()
 +        ...
 +</code>
 +
 +Mit der ersten Zeile wird der Zufallszahlengenerator importiert. Mit der veränderten Funktion ''%%place_homer()%%'' wird die Spielfigur an einer zufälligen Stelle des Bildschirms platziert. Nach jedem Treffer wird die Funktion aufgerufen und Homer erscheint an einer anderen stelle des Bildschirms.
 +
 +Hier seht ihr das fertige Programm:
 +
 +<code python projekt1.py>
 +import pgzrun
 +
 +from random import randint
 +
 +homer = Actor("homer.png")
 +
 +def draw():
 +    screen.clear()
 +    homer.draw()
 +    
 +def place_homer():
 +    homer.x = randint(10, 800)
 +    homer.y = randint(10, 600)
 +
 +def on_mouse_down(pos):
 +    if homer.collidepoint(pos):
 +        print("Treffer!")
 +        place_homer()
 +    else:
 +        print("Daneben!")
 +        quit()
 +
 +place_homer()
 +
 +pgzrun.go()
 +</code>
 +
 +=====Erklärvideo=====
 +
 +{{youtube>gWG3wDRD1xU}}
 +
 +=====Aufgaben====
 +
 +**Aufgabe 1**
 +
 +Verändere das Programm so, dass es auch bei "Daneben!" weiterläuft. Es kann dann nur durch das Schließen des Fensters beendet werden.
 +
 +**Aufgabe 2**
 +
 +Führe eine Variable treffer ein, die die Anzahl der Treffer zählt. Sie muss zu Beginn des Programms im Hauptprogramm auf 0 gesetzt werden. 
 +
 +Wenn nun Homer getroffen wurde, soll die Variable soll um 1 erhöht werden. Um eine globale Variable in einer Funktion zu ändern, muss sie in der Funktion als global deklariert werden. (https://www.python-kurs.eu/python3_global_lokal.php)
 +
 +Letztendlich soll in der **print**-Anweisung hinter Treffer noch die Anzahl der bisherigen Treffer ausgegeben werden.
 +
 +**Aufgabe 3**
 +
 +Schreibe ein eigenes Programm!
 +
 +Führe andere ähnliche Spielfiguren (https://icons8.de/icon/set/characters/color) ein und passe die Hintergrundfarbe (https://pygame-zero.readthedocs.io/de/latest/introduction.html#einen-hintergrund-zeichnen) an, um den Spieler zu verwirren. Nur wenn auf eine bestimmte Figur geklickt wird (hier der Grinch) wird ein Treffer gezählt.
 +
 +{{ :python:pgzero:grinch.png?600 |}}
 +
 +\\
 +
 +~~DISCUSSION | Hier können Fragen zum Inhalt der Seite gestellt werden. ~~
python/pgzero/projekt1.1616253882.txt.gz · Zuletzt geändert: 2021/03/20 16:24 von lutz