Benutzer-Werkzeuge

Webseiten-Werkzeuge


python:pgzero:projekt2

Dies ist eine alte Version des Dokuments!


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:

mario.py
from random import randint
 
WIDTH = 600
HEIGHT = 600
score = 0
 
game_over = False
 
mario = Actor("mario.png") 
mario.pos = 100, 100
 
coin = Actor("money.png")
coin.pos = 200, 200
 
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)
 
def place_coin():
    coin.x = randint(20, (WIDTH-20))
    coin.y = randint(20, (HEIGHT-20))
 
def time_up(): 
    global game_over
    game_over = 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()
 
clock.schedule(time_up, 20.0)
place_coin()

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.

Hier können Fragen zum Inhalt der Seite gestellt werden.

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
G P S D P
 
python/pgzero/projekt2.1619438992.txt.gz · Zuletzt geändert: 2021/04/26 14:09 von lutz