======Projekt 2 - Super Mario======
Im Projekt 2 wollen wir unsere Spielfigur bewegen. "Super Mario" soll Münzen sammeln. Die Spielzeit soll begrenzt werden und am Ende soll ein Punktestand angezeigt werden.
=====Vorbereitungen=====
Zunächst legen wir ein Projektverzeichnis (z.B.supermario) an. Im Projektverzeichnis muss sich Unterverzeichnis images mit den Bildern mario.png und money.png befinden. Die Bilder können wieder hier:
https://icons8.de/icon/set/characters/color
heruntergeladen werden.
=====Beschreibung des Programms=====
Zu nächst des gesamte Programm:
[[python:pgzero:projekt2_quelltext|Projekt 2 - Super Mario - Quelltext]]
Mit der Zeile
from random import randint
werden die Funktionen für Zufallszahlen eingebunden.
Mit
WIDTH = 600
HEIGHT = 600
score = 0
game_over = False
werden einige globale Konstanten bzw. Variablen festgelegt. ''%%WIDTH%%'' und ''%%HEIGHT%%'' legen die Größe des Spielfensters fest In ''%%score%%'' wird der Punktestand abgespeichert, ''%%game_over%%'' wird auf ''%%True%%'' gesetzt, wenn die Zeit abgelaufen ist.
Mit
mario = Actor("mario.png")
mario.pos = 100, 100
coin = Actor("money.png")
coin.pos = 200, 200
werden die Akteure des Spiels definiert.
def draw():
screen.fill("green")
mario.draw()
coin.draw()
screen.draw.text("Punkte: " + str(score), color="black", topleft=(10, 10))
if game_over:
screen.fill("pink")
screen.draw.text("Endstand:" + str(score), topleft=(10, 10), fontsize = 60)
Mit der Funktion ''%%draw()%%'' werden die Akteure auf den Bildschirm gezeichnet und die Bildschirmfarbe auf grün gesetzt. Wenn das Spiel vorbei ist, wird die Farbe des Bildschirms geändert und der Spielstand angezeigt.
def place_coin():
coin.x = randint(20, (WIDTH-20))
coin.y = randint(20, (HEIGHT-20))
Mit der Funktion ''%%place_coin()%%'' wird die Münze an einer zufälligen Stelle auf dem Bildschirm platziert.
def time_up():
global game_over
game_over = True
Die Funktion ''%%time_up()%%'' setzt die Variable ''%%game_over()%%'' auf ''%%True%%''.
def update():
global score
if keyboard.left:
mario.x = mario.x - 4
elif keyboard.right:
mario.x = mario.x + 4
elif keyboard.up:
mario.y = mario.y - 4
elif keyboard.down:
mario.y = mario.y + 4
coin_collectet = mario.colliderect(coin)
if coin_collectet:
score = score + 10
place_coin()
Die Funktion ''%%update()%%'' ist eine in Pygamezero vordefinierte Funktion. Sie wird sechszig mal pro Sekunde ausgeführt.
Mit der **if-elif**-Anweisung wird auf die Pfeiltasten der Tastatur reagiert. Die Position von Mario wird dann entsprechend verändert ''%%coin_collected%%'' wird auf ''%%True%%'' gesetzt, wenn Mario und die Münze kollidieren.
Wenn das passiert, wird der Score erhöht und die Münze an einer anderen Stelle platziert.
clock.schedule(time_up, 20.0)
Mit dieser Programmzeile wird festgelegt, wie lange das Programm läuft.
=====Erkärvideo=====
{{youtube>TyWeB2UK0_4}}
=====Aufgaben=====
**Aufgabe 1**
Teste den Programmcode! Verändere die Laufzeit des Programms und die Geschwindigkeit von Mario!
**Aufgabe 2**
Erhöhe die Anzahl der Münzen die angezeigt werden.
**Aufgabe 3**
Lass zusätzlich andere Münzen oder Gegenstände anzeigen, für die Mario einen anderen Score bekommt.
\\
~~DISCUSSION | Hier können Fragen zum Inhalt der Seite gestellt werden. ~~