Re: Spielfigur mit Leertaste hüpfen lassen
Verfasst: Mittwoch 21. Juli 2021, 07:50
Wozu ist denn die Abfrage mit 525?
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Code: Alles auswählen
if keyboard.is_pressed("space") and jumpTime == 0:
jumpTime += 1
if stickman.y >= 430:
stickman.y -= 27
else:
if stickman.y <= 525:
stickman.y += 2
jumpTime = 0
Code: Alles auswählen
height = max(height - 5, ground_height)
Code: Alles auswählen
stickman = Actor("stickman")
Code: Alles auswählen
stickman.x_pos = 400
stickman.y_pos = 600
stickman.x_vel = 0
stickman.y_vel = 0
Code: Alles auswählen
gravity = 0.1
Code: Alles auswählen
# x-Position und y-Position werden durch Aufsummieren der x-Geschwindigkeit und y-Geschwindigkeit geändert
stickman.x_pos += stickman.x_vel
stickman.y_pos += stickman.y_vel
Code: Alles auswählen
# y-Geschwindigkeit wird durch Aufsummierender der Gravitation geändert
stickman.y_vel += gravity
Code: Alles auswählen
# prüfen ob der stickman in den Boden gefallen ist.
# Wenn ja, wird die y-Position gleich der Bodenposition gesetzt und die Geschwindigkeit in y-Richtung auf 0 gesetzt
if stickman.y_pos > GROUND:
stickman.y_pos = GROUND
stickman.y_vel = 0
Code: Alles auswählen
# die germerkten Werte an den stickman übertragen
stickman.midbottom = (stickman.x_pos, stickman.y_pos)
Code: Alles auswählen
def on_key_down(key):
# springen ist nur möglich
if key == keys.SPACE and stickman.midbottom[1] == GROUND:
stickman.y_vel = -10
Code: Alles auswählen
import pgzrun
WIDTH = 800
HEIGHT = 800
GROUND = 600 # fester Wert für den Boden
stickman = Actor("stickman")
# gemerkte Positions und Geschwindigkeitswerte
stickman.x_pos = 400
stickman.y_pos = 600
stickman.x_vel = 0
stickman.y_vel = 0
# Erdbeschleunigung
gravity = 0.1
def update(dt):
# x-Position und y-Position werden durch Aufsummieren der x-Geschwindigkeit und y-Geschwindigkeit geändert
stickman.x_pos += stickman.x_vel
stickman.y_pos += stickman.y_vel
# y-Geschwindigkeit wird durch Aufsummierender der Gravitation geändert
stickman.y_vel += gravity
# prüfen ob der stickman in den Boden gefallen ist.
# Wenn ja, wird die y-Position gleich der Bodenposition gesetzt
if stickman.y_pos > GROUND:
stickman.y_pos = GROUND
# die germerkten Werte an den stickman übertragen
stickman.midbottom = (stickman.x_pos, stickman.y_pos)
def draw():
screen.fill((0, 0, 0))
# Boden zeichnen
screen.draw.line((0, GROUND), (WIDTH, GROUND), (255, 255, 255))
stickman.draw()
def on_key_down(key):
# springen ist nur möglich
if key == keys.SPACE and stickman.midbottom[1] == GROUND:
stickman.y_vel = -10
pgzrun.go()