import pygame as py
from pygame.constants import *

#             R    G    B
WHITE     = (255, 255, 255)
BLACK     = (  0,   0,   0)
RED       = (255,   0,   0)
GREEN     = (  0, 255,   0)
BLUE      = (  0,   0, 255)
DARKGRAY  = ( 40,  40,  40)


py.init()

# Fenstergroesse
board_length = 800
board_height = 600

# Das Fenster erstellen
screen = py.display.set_mode((board_length, board_height), 0, 32)
py.display.set_caption('Rotation')

class My_rect(py.sprite.Sprite):
    """This class represents the ball."""
    def __init__(self, x_pos = 200, y_pos = 200, lenge = 100, breite = 100, color = [0,255,0]):
        super().__init__()
        self.image = py.Surface([lenge, breite], py.SRCALPHA, 32)
        self.image = self.image.convert_alpha()
        self.image.fill(color)
        self.rect = self.image.get_rect()
        self.rot_image = self.image
        self.angle = 0
        self.set_pos(x_pos, y_pos)

    def set_pos(self, x, y):
        self.rect.x = x
        self.rect.y = y
        
    def add_pos(self, x, y):
        self.rect.x = self.rect.x + x
        self.rect.y = self.rect.y + y
        
    def rot_rect(self, add_angle):
        center_coordinate = self.rect.center
        self.angle = (self.angle + add_angle) % 360
        
        self.rot_image = py.transform.rotate(self.image, self.angle)
        self.rect = self.rot_image.get_rect()
        self.rect.center = center_coordinate
        
    def draw(self):
        screen.blit(self.rot_image, self.rect)
        


def key_handler():
    key = py.key.get_pressed()
    
    if key[py.K_LEFT]:
        chuny_rect.rot_rect(-5)             
    if key[py.K_RIGHT]:
        chuny_rect.rot_rect(5)
    if key[py.K_d]:
        chuny_rect.add_pos(5, 0)     
    if key[py.K_a]:
        chuny_rect.add_pos(-5, 0)   
    if key[py.K_w]:
        chuny_rect.add_pos(0, -5)
    if key[py.K_s]:
        chuny_rect.add_pos(0, 5)




FPS = 60  # frames per second setting
fps_clock = py.time.Clock()

is_running = True

chuny_rect = My_rect()
group_rect = py.sprite.Group()
group_rect.add(chuny_rect)


while is_running: # main game loop
    screen.fill(WHITE)

    for event in py.event.get():
        if event.type == py.QUIT or py.key.get_pressed()[py.K_ESCAPE]:
            is_running = False

    key_handler()
    chuny_rect.draw()

    py.display.update()
    fps_clock.tick(FPS)

py.quit()
print("Programm beendet.")