Du kannst nun rennen

This commit is contained in:
Benjamin 2026-08-07 18:20:24 +02:00
parent a2de58f2ce
commit 3e00e6d0e5
3 changed files with 21 additions and 37 deletions

4
.gitignore vendored
View file

@ -218,3 +218,7 @@ __marimo__/
# Streamlit # Streamlit
.streamlit/secrets.toml .streamlit/secrets.toml
der_test.py
rechner.py

24
game.py
View file

@ -1,8 +1,8 @@
import pygame import pygame
SCREEN_WIDTH = 640 SCREEN_WIDTH = 1280
SCREEN_HEIGHT = 480 SCREEN_HEIGHT = 720
class Game: class Game:
@ -30,12 +30,14 @@ class Game:
self.item_rect = pygame.Rect(60, 40, 10, 10) self.item_rect = pygame.Rect(60, 40, 10, 10)
self.flashlight_rect = (self.player_pos, 30) self.flashlight_rect = (self.player_pos, 50)
self.flashlight = 0 self.flashlight = 0
self.color_item = (0, 0, 0) self.color_item = (0, 0, 0)
self.speed = 300
#self.circle = pygame.geometry.Circle(self.player_pos[0], self.player_pos[1], 30) #self.circle = pygame.geometry.Circle(self.player_pos[0], self.player_pos[1], 30)
def run(self) -> None: def run(self) -> None:
@ -55,6 +57,13 @@ class Game:
if event.key == pygame.K_ESCAPE: if event.key == pygame.K_ESCAPE:
self.running = False self.running = False
if event.key == pygame.K_LSHIFT:
self.speed = 600
if event.type == pygame.KEYUP:
if event.key == pygame.K_LSHIFT:
self.speed = 300
# Player-Draw # Player-Draw
self.flashlight = pygame.draw.circle(self.display, (255, 255, 255, 0), self.flashlight_rect[0], self.flashlight_rect[1]) self.flashlight = pygame.draw.circle(self.display, (255, 255, 255, 0), self.flashlight_rect[0], self.flashlight_rect[1])
@ -65,13 +74,14 @@ class Game:
# Smooth Movement # Smooth Movement
keys = pygame.key.get_pressed() keys = pygame.key.get_pressed()
if keys[pygame.K_w]: if keys[pygame.K_w]:
self.player_pos.y -= 300 * self.dt self.player_pos.y -= self.speed * self.dt
if keys[pygame.K_s]: if keys[pygame.K_s]:
self.player_pos.y += 300 * self.dt self.player_pos.y += self.speed * self.dt
if keys[pygame.K_a]: if keys[pygame.K_a]:
self.player_pos.x -= 300 * self.dt self.player_pos.x -= self.speed * self.dt
if keys[pygame.K_d]: if keys[pygame.K_d]:
self.player_pos.x += 300 * self.dt self.player_pos.x += self.speed * self.dt
if self.rect_circle_collision(self.item_rect, self.flashlight_rect): if self.rect_circle_collision(self.item_rect, self.flashlight_rect):

30
test.py
View file

@ -1,30 +0,0 @@
import pygame
def rect_circle_collision(rect, circle):
rect_x, rect_y, rect_w, rect_h = rect
circle_x, circle_y, circle_r = circle
# Calculate the closest point on the rectangle to the center of the circle
closest_x = max(rect_x, min(circle_x, rect_x + rect_w))
closest_y = max(rect_y, min(circle_y, rect_y + rect_h))
# Calculate the distance between the center of the circle and the closest point on the rectangle
dx = circle_x - closest_x
dy = circle_y - closest_y
distance = (dx ** 2 + dy ** 2) ** 0.5
return distance <= circle_r
# Example usage
pygame.init()
rect = (100, 100, 200, 200) # (x, y, width, height)
circle = (150, 150, 50) # (x, y, radius)
if rect_circle_collision(rect, circle):
print("Collision detected!")
else:
print("No collision.")
pygame.quit()