from dotenv import load_dotenv import os load_dotenv() # lädt .env beim Start import math import pygame from compute import rotation_matrix, apply_mat_to_vec, add from game import Game class Moon(Game): def __init__(self): #.env width = int(os.getenv("WINDOW_WIDTH", "800")) height = int(os.getenv("WINDOW_HEIGHT", "600")) fps = int(os.getenv("FPS", "60")) super().__init__(width, height, fps, title="Moon – Orbit Demo") self.center = (width // 2, height // 2) #mittelpunlt self.earth_radius = 32 #Darstellung self.moon_radius = 12 self.orbit_radius = int(os.getenv("ORBIT_RADIUS", "160")) # neu self.angular_speed = float(os.getenv("ANGULAR_SPEED", "0.8")) # neu self.angle = 0.0 self.bg_color = (10, 10, 25) self.earth_color = (60, 120, 255) self.moon_color = (245, 245, 245) def update(self, dt: float) -> None: self.angle = (self.angle + self.angular_speed * dt) % (2 * math.pi) def draw(self, screen: pygame.Surface) -> None: screen.fill(self.bg_color) pygame.draw.circle(screen, self.earth_color, self.center, self.earth_radius) #Erde v0 = (float(self.orbit_radius), 0.0) #start R = rotation_matrix(self.angle) #rotierter vektor v_rot = apply_mat_to_vec(R, v0) pos = add(self.center, v_rot) pygame.draw.circle(screen, self.moon_color, (int(pos[0]), int(pos[1])), self.moon_radius) #mOnd zeichenn if __name__ == "__main__": Moon().run()