cdec/player.py
2025-10-12 11:56:02 +02:00

43 lines
1.3 KiB
Python

import pygame
from settings import PLAYER_SIZE
class Player:
def __init__(self, x, y, image):
self.x = x
self.y = y
self.alive = True
self.rect = pygame.Rect(x, y, PLAYER_SIZE, PLAYER_SIZE)
self.dir = "up"
self.image = image
self.ammo = 5 # Startwert für Munition
def move(self, keys, map_w, map_h):
if not self.alive:
return
dx = dy = 0
if keys[pygame.K_w]:
dy -= 5
self.dir = "up"
if keys[pygame.K_s]:
dy += 5
self.dir = "down"
if keys[pygame.K_a]:
dx -= 5
self.dir = "left"
if keys[pygame.K_d]:
dx += 5
self.dir = "right"
self.x = max(0, min(map_w - PLAYER_SIZE, self.x + dx))
self.y = max(0, min(map_h - PLAYER_SIZE, self.y + dy))
self.rect.topleft = (self.x, self.y)
def draw(self, win, ox, oy):
if not self.alive:
return
img = self.image
angle = {"up": 90, "right": 0, "down": -90, "left": 180}[self.dir]
if img:
rotated_img = pygame.transform.rotate(img, angle)
win.blit(rotated_img, (self.x - ox, self.y - oy))
else:
pygame.draw.rect(win, (200, 200, 0), (self.x - ox, self.y - oy, PLAYER_SIZE, PLAYER_SIZE))