diff --git a/main.py b/main.py index 21dea0c..a92861e 100644 --- a/main.py +++ b/main.py @@ -29,7 +29,7 @@ font1 = pygame.font.SysFont("Noto Sans 10pt", 25) PLAYGROUND = pygame.Surface((1024,728)) -obj1 = GameObjects("Test", 0,0) + gamestate = True @@ -53,6 +53,7 @@ pacman_animation.append(pygame.image.load("models/pacman_1_3.png")) pacman_animation.append(pygame.image.load("models/pacman_1_4.png")) pacman_animation.append(pygame.image.load("models/pacman_1_5.png")) +model1 = "models/pacman_1_1.png" #ITEMS @@ -73,6 +74,8 @@ movedirection = {"up":False, "down":False, "left":False, "right":False} map1 = list() movement_map = list() +pacman = GameObject("Test", 600, 600, 50,50, model1 ,MAINSCREEN) + def generate_map(*mapfile): #Generate row startpos_x = 0 @@ -141,32 +144,26 @@ while(gamestate==True): #TODO Check for wall-collision!!!! if(movedirection["up"] == True): - if(pacman_posy >= 0): - pacman_posy -= pacman_movespeed + if(pacman.get_position()[1] >= 0): + pacman.move(0, -pacman_movespeed) if(movedirection["down"] == True): - if(pacman_posy <= (MAINSCREEN_SIZE[1]-pacman_size)): - pacman_posy += pacman_movespeed + if(pacman.get_position()[1] <= (MAINSCREEN_SIZE[1]-pacman_size)): + pacman.move(0, pacman_movespeed) if(movedirection["right"] == True): - if(pacman_posx <= (MAINSCREEN_SIZE[0]-pacman_size)): - pacman_posx += pacman_movespeed + if(pacman.get_position()[0] <= (MAINSCREEN_SIZE[0]-pacman_size)): + pacman.move(pacman_movespeed, 0) if(movedirection["left"] == True): - if(pacman_posx >= 0): - pacman_posx -= pacman_movespeed - - - MAINSCREEN.blit(pacman_animation[0], (pacman_posx,pacman_posy)) + if(pacman.get_position()[0] >= 0): + pacman.move(-pacman_movespeed, 0) + pacman.draw() for row in map1: MAINSCREEN.blit(row["object"], (row["x"],row["y"])) - for index, item in enumerate(movedirection): - if(movedirection[item]==True): - print(F"Pacman-Position: x:{pacman_posx} y:{pacman_posy}") - if debug_mode: #Adds visual character for vaild movementpath (DEBUG ONLY) for coord in movement_map: @@ -174,7 +171,7 @@ while(gamestate==True): MAINSCREEN.blit(tmp, (coord["x"], coord["y"])) - pacman_pos_label = font1.render(F"x:{pacman_posx} y:{pacman_posy}", 1, SCHWARZ) + pacman_pos_label = font1.render(F"x:{pacman.get_position()[0]} y:{pacman.get_position()[1]}", 1, SCHWARZ) fps_label = font1.render(F"FPS: {int(clock.get_fps())}", 1, SCHWARZ) if debug_mode: diff --git a/modules/gameobjects.py b/modules/gameobjects.py index 768662f..aaa96ac 100644 --- a/modules/gameobjects.py +++ b/modules/gameobjects.py @@ -1,23 +1,28 @@ import pygame -class GameObjects(): - def __init__(self, name, posx:int, posy:int, sprite:str) -> None: - self.posx = posx - self.posy = posy - self.name = name - self.sprite:str = "" - self.rect:pygame.rect - if(sprite != ""): - pygame.image.load(sprite) - - pass +class GameObject(): + def __init__(self, name, posx:int, posy:int, sizex, sizey, spritepath:str, surface:pygame.Surface) -> None: + self._posx = posx + self._posy = posy + self._size = [sizex, sizey] + self._name = name + self._surface = surface + self._spritepath:str = "" + self._sprite:pygame.Surface + self._rect:pygame.rect + if(len(spritepath) > 0): + self._sprite = pygame.image.load(spritepath) + self._rect = self._sprite.get_rect() def move(self, x,y): - self.posx = x - self.posy = y - pass + self._posx += x + self._posy += y + def draw(self): - pygame.Surface.blit() - pass \ No newline at end of file + self._rect = pygame.Surface.blit(self._surface, self._sprite, (self._posx, self._posy)) + + + def get_position(self): + return(self._posx, self._posy) \ No newline at end of file