Spielobjekte am "Abhauen" hindern
Abschlussbedingungen
Die Funktion clamp_ip()
kann ein Spielobjekt zurückschieben, wenn es einen gegebenen Bereich verlässt:
Ein Beispiel aus dem PGZ Blaster
In der Aktualisierungs-Funktion des Schiffes sorgt clamp_ip()
dafür, dass das Schiff das Programmfenster nicht verlassen kann.0,0, WIDTH, HEIGHT
sind die Abmessungen des Programmfensters!
def aktualisiere(self):
if keyboard.left:
self.x -= self.geschwindigkeit
if keyboard.right:
self.x += self.geschwindigkeit
self.clamp_ip(0, 0, WIDTH, HEIGHT)
Ein komplettes Programmbeispiel
Hier ist das Schiff in einem blauen Rechteck "gefangen".
Achtung: Dieses Beispiel funktioniert nur, wenn es im selben Ordner liegt wie die PGZ Blaster Dateien!
import pgzrun
WIDTH, HEIGHT = 500, 700
class Schiff(Actor):
def __init__(self):
Actor.__init__(self, 'schiff')
self.bottom = HEIGHT / 2
self.centerx = WIDTH / 2
self.geschwindigkeit = 6
def aktualisiere(self):
if keyboard.left:
self.x -= self.geschwindigkeit
if keyboard.right:
self.x += self.geschwindigkeit
if keyboard.up:
self.y -= self.geschwindigkeit
if keyboard.down:
self.y += self.geschwindigkeit
schiff.clamp_ip(rechteck)
schiff = Schiff()
rechteck = Rect(100, 100, WIDTH-200, HEIGHT-200)
def update():
schiff.aktualisiere()
def draw():
screen.fill((255, 255, 255))
screen.draw.filled_rect(rechteck, "blue")
screen.draw.filled_rect(schiff._rect, "red")
schiff.draw()
pgzrun.go( )
Zuletzt geändert: Donnerstag, 13. März 2025, 07:26