Other changes...
This commit is contained in:
59
Player.py
59
Player.py
@@ -1,5 +1,58 @@
|
||||
import pygame
|
||||
|
||||
import Utils
|
||||
import Animation
|
||||
|
||||
# Die Player Klasse verwendet zwei Animationen, um eine steuerbare Spielfigur dazustellen.
|
||||
class Player(object):
|
||||
def __init__(self) -> None:
|
||||
pass
|
||||
def __init__(self):
|
||||
# Bild laden und erste Animation erstellen:
|
||||
self.anim_image_right = Utils.load_image("tileset.png", (255, 0, 255))
|
||||
self.anim_right = Animation.Animation(self.anim_image_right, 32, 32, 2, 32, 64, 15)
|
||||
|
||||
# Die Grafik spiegeln und in einer neuen Surface speichern,
|
||||
# dann können wir die linke Animation erstellen.
|
||||
self.anim_image_left = pygame.transform.flip(self.anim_image_right, True, False)
|
||||
self.anim_left = Animation.Animation(self.anim_image_left, 32, 32, 2, 32, 64, 15)
|
||||
|
||||
# Start-Position des Players festlegen und
|
||||
# merken in welche Richtung wir schauen und ob wir überhaupt laufen.
|
||||
self.pos_x = 10*32
|
||||
self.pos_y = 13*32
|
||||
self.dir = 0
|
||||
self.walking = False
|
||||
|
||||
|
||||
def render(self, screen):
|
||||
# Die Blickrichtung ist links:
|
||||
if self.dir == -1:
|
||||
# Wenn der Spieler die linke oder rechte Pfeiltaste gedrückt hat sind wir am laufen,
|
||||
if self.walking:
|
||||
# nur dann die Animation updaten.
|
||||
self.anim_left.update()
|
||||
# Blickrichtung links rendern.
|
||||
self.anim_left.render(screen, (self.pos_x, self.pos_y))
|
||||
else:
|
||||
# Und das gleiche nochmal für rechts:
|
||||
if self.walking:
|
||||
self.anim_right.update()
|
||||
self.anim_right.render(screen, (self.pos_x, self.pos_y))
|
||||
|
||||
# De Laufen-Zustand zurücksetzen, im nächsten Frame bleiben wir stehen.
|
||||
self.walking = False
|
||||
|
||||
|
||||
def handle_input(self, key):
|
||||
# Linke Pfeiltaste wird gedrückt:
|
||||
if key == pygame.K_LEFT:
|
||||
# x-Position der Spielfigur anpassen,
|
||||
# die Blickrichtung festlegen
|
||||
# und den Laufen-Zustand einschalten.
|
||||
self.pos_x -= 1
|
||||
self.dir = -1
|
||||
self.walking = True
|
||||
|
||||
# Und nochmal für die rechte Pfeiltaste.
|
||||
if key == pygame.K_RIGHT:
|
||||
self.pos_x += 1
|
||||
self.dir = 1
|
||||
self.walking = True
|
||||
|
||||
Reference in New Issue
Block a user