Compare commits

...

2 Commits

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

@ -1,3 +1,4 @@
from player import Player
import pygame
import sys
from menu import Menu # Menü importieren
@ -13,7 +14,7 @@ def main():
menu = Menu(screen)
world = World(screen)
current_scene = "menu" # oder "world"
current_scene = settings.START_POINT
running = True
while running:
@ -38,6 +39,7 @@ def main():
if current_scene == "menu":
menu.draw()
elif current_scene == "world":
world.player.update(world.ground_rect.top)
world.draw()
pygame.display.flip()

@ -0,0 +1,49 @@
import pygame
import settings
class Player:
def __init__(self, x, y):
self.image_normal = pygame.transform.scale(
pygame.image.load(settings.player.fred.normal).convert_alpha(),
settings.player.size
)
self.image_jump = pygame.transform.scale(
pygame.image.load(settings.player.fred.olli).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 = 5
self.gravity = 1
self.jump_strength = -12
self.on_ground = False
def update(self, ground_y):
keys = pygame.key.get_pressed()
was_on_ground = self.on_ground
if keys[pygame.K_LEFT]:
self.rect.x -= self.speed
if keys[pygame.K_RIGHT]:
self.rect.x += self.speed
if keys[pygame.K_SPACE] and self.on_ground:
self.velocity_y = self.jump_strength
self.on_ground = False
if self.on_ground and self.image != self.image_normal:
self.image = self.image_normal
elif not self.on_ground and self.image != self.image_jump:
self.image = self.image_jump
if not self.on_ground and was_on_ground and settings.DEBUG:
print("Fred springt!")
self.velocity_y += self.gravity
self.rect.y += self.velocity_y
# Boden-Kollision
if self.rect.bottom >= ground_y:
self.rect.bottom = ground_y
self.velocity_y = 0
self.on_ground = True
def draw(self, screen):
screen.blit(self.image, self.rect)

@ -1,14 +1,21 @@
# Einstellungen
SCREEN_WIDTH = 1280
SCREEN_HEIGHT = 720
FPS = 30
FPS = 60
DEBUG = True
Mute = True
START_POINT = "world" # world, menu
# Schriftarten
class fonts:
PressStart2P = '../assets/fonts/PressStart2P-Regular.ttf'
class player:
size = (100, 100)
class fred:
normal = "../assets/images/player/fred.png"
olli = "../assets/images/player/fred_olli.png"
# Farben
class MyColors:
# Allgemein

@ -1,15 +1,18 @@
import pygame
import settings
from player import Player
class World:
def __init__(self, screen):
self.screen = screen
self.background_color = (135, 206, 235) # Himmelblau
self.ground_rect = pygame.Rect(0, 600, 1280, 120) # Boden
self.player = Player(200, 500) # Spieler
def draw(self):
self.screen.fill(self.background_color)
pygame.draw.rect(self.screen, (124, 252, 0), self.ground_rect) # Grün für Boden
self.player.draw(self.screen)
def handle_event(self, event):
if event.type == pygame.KEYDOWN:
@ -17,4 +20,5 @@ class World:
if settings.DEBUG:
print("ESC-Pressed")
return "menu"
# self.player.handle_event(event)
return None
Loading…
Cancel
Save

Powered by TurnKey Linux.