Renamed Gameobjects class

Changed movement to classmethod
This commit is contained in:
2024-07-21 19:09:45 +02:00
parent 5d45bd9b05
commit f3d43d55a2
2 changed files with 35 additions and 33 deletions

31
main.py
View File

@@ -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:

View File

@@ -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
self._rect = pygame.Surface.blit(self._surface, self._sprite, (self._posx, self._posy))
def get_position(self):
return(self._posx, self._posy)