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:06] – [Auf den Mausklick reagieren] lutzpython:pgzero:projekt1 [2024/03/12 09:24] (aktuell) – [Die Spielfigur zufällig platzieren] lutz
Zeile 89: Zeile 89:
 Diese Funktion ''%%on_mouse_down(pos)%%'' reagiert auf den Mausklick (dann wird sie ausgeführt). An die Funktion wird die x- und die y-Koordinate der Maus übergeben, wenn man mit der Maus auf eine bestimmte Stelle des Screens klickt. Diese Funktion ''%%on_mouse_down(pos)%%'' reagiert auf den Mausklick (dann wird sie ausgeführt). An die Funktion wird die x- und die y-Koordinate der Maus übergeben, wenn man mit der Maus auf eine bestimmte Stelle des Screens klickt.
  
-Die Funktion ''%%homer.collidepoint(pos)%%'' +Die Funktion ''%%homer.collidepoint(pos)%%'' testet, ob sich die übergebene Position innerhalb des Bildes von Homer befindet. In diesem Fall gibt sie ''%%True%%'' zurück, anderenfalls ''%%False%%''
 + 
 +Die ''%%if%%''-Anweisung bewirkt, dass wenn man auf Homer klickt, "Treffer!" ausgegeben wird, anderenfalls wird "Daneben!" ausgegeben und das Programm wird beendet. 
 + 
 +{{ :python:pgzero:homer3.png?600 |}} 
 + 
 +====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.1616252787.txt.gz · Zuletzt geändert: 2021/03/20 16:06 von lutz