Compare commits
No commits in common. '29041573b78d92b26544249b0a3402b9b35e89fc' and '996c9f61c65af212e9d8838bf11c2e37728ea81f' have entirely different histories.
29041573b7
...
996c9f61c6
|
Before Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 3.1 MiB |
|
Before Width: | Height: | Size: 3.3 MiB |
|
Before Width: | Height: | Size: 2.9 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 660 KiB |
|
Before Width: | Height: | Size: 738 KiB |
|
Before Width: | Height: | Size: 795 KiB |
|
Before Width: | Height: | Size: 880 KiB |
|
Before Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 1.9 MiB |
|
Before Width: | Height: | Size: 1.4 MiB |
@ -1,14 +0,0 @@
|
||||
import pygame
|
||||
import settings
|
||||
|
||||
class Obstacle:
|
||||
def __init__(self, x, y, image_path):
|
||||
self.image = pygame.image.load(image_path).convert_alpha()
|
||||
self.image = pygame.transform.scale(self.image, (300, 150)) # Größe anpassen
|
||||
self.rect = self.image.get_rect(topleft=(x, y))
|
||||
|
||||
def draw(self, screen, camera_offset):
|
||||
screen.blit(self.image, (self.rect.x - camera_offset, self.rect.y))
|
||||
|
||||
def get_rect(self):
|
||||
return self.rect
|
||||
@ -1,69 +0,0 @@
|
||||
import pygame
|
||||
import settings
|
||||
|
||||
class Player:
|
||||
def __init__(self, x, y):
|
||||
# PLAYER BILDER
|
||||
# --- NORMAL
|
||||
self.image_normal = pygame.transform.scale(pygame.image.load(settings.player.fred.normal).convert_alpha(),settings.player.size)
|
||||
|
||||
# --- JUMP
|
||||
self.image_jump = pygame.transform.scale(pygame.image.load(settings.player.fred.olli).convert_alpha(),settings.player.size)
|
||||
|
||||
# --- BACK
|
||||
self.image_left = pygame.transform.scale(pygame.image.load(settings.player.fred.left).convert_alpha(),settings.player.size)
|
||||
|
||||
self.image = self.image_normal # Anfangszustand
|
||||
self.rect = self.image.get_rect(topleft=(x, y))
|
||||
self.velocity_y = 0
|
||||
self.speed = settings.player.speed
|
||||
self.gravity = settings.player.gravity
|
||||
self.jump_strength = settings.player.jump_strength
|
||||
self.on_ground = False
|
||||
|
||||
def update(self, ground_y, obstacles=[]):
|
||||
keys = pygame.key.get_pressed()
|
||||
|
||||
# Bewegung seitlich
|
||||
if keys[pygame.K_LEFT]:
|
||||
self.rect.x -= self.speed
|
||||
if keys[pygame.K_RIGHT]:
|
||||
self.rect.x += self.speed
|
||||
|
||||
# Sprung
|
||||
if keys[pygame.K_SPACE] and self.on_ground:
|
||||
self.velocity_y = self.jump_strength
|
||||
self.on_ground = False
|
||||
|
||||
# Gravitation
|
||||
self.velocity_y += self.gravity
|
||||
self.rect.y += self.velocity_y
|
||||
self.on_ground = False # zurücksetzen
|
||||
|
||||
# Plattform-Kollision prüfen
|
||||
for obs in obstacles:
|
||||
if self.rect.colliderect(obs.get_rect()):
|
||||
# nur wenn Spieler von oben kommt
|
||||
if self.velocity_y > 0 and self.rect.bottom <= obs.get_rect().top + 20:
|
||||
self.rect.bottom = obs.get_rect().top
|
||||
self.velocity_y = 0
|
||||
self.on_ground = True
|
||||
|
||||
# Boden-Kollision
|
||||
if self.rect.bottom >= ground_y:
|
||||
self.rect.bottom = ground_y
|
||||
self.velocity_y = 0
|
||||
self.on_ground = True
|
||||
|
||||
# Bildlogik
|
||||
if not self.on_ground:
|
||||
self.image = self.image_jump
|
||||
elif keys[pygame.K_LEFT]:
|
||||
self.image = self.image_left
|
||||
elif keys[pygame.K_RIGHT]:
|
||||
self.image = self.image_normal
|
||||
else:
|
||||
self.image = self.image_normal
|
||||
|
||||
def draw(self, screen):
|
||||
screen.blit(self.image, self.rect)
|
||||