Some changes in class Follower and code cleanup
This commit is contained in:
122
pygame-test.py
122
pygame-test.py
@@ -95,7 +95,14 @@ class GameObject():
|
|||||||
else:
|
else:
|
||||||
self.__rectobjekt = pygame.draw.rect(self.__surface, self.__color, [self.__pos_x, self.__pos_y,self.__size_rect["x"],self.__size_rect["y"]])
|
self.__rectobjekt = pygame.draw.rect(self.__surface, self.__color, [self.__pos_x, self.__pos_y,self.__size_rect["x"],self.__size_rect["y"]])
|
||||||
|
|
||||||
def get_position(self):
|
def get_name(self, debug=False):
|
||||||
|
if(debug):
|
||||||
|
print(self.__name)
|
||||||
|
return self.__name
|
||||||
|
|
||||||
|
def get_position(self, debug=False):
|
||||||
|
if(debug):
|
||||||
|
print((self.__pos_x, self.__pos_y))
|
||||||
return (self.__pos_x, self.__pos_y)
|
return (self.__pos_x, self.__pos_y)
|
||||||
|
|
||||||
def get_rect(self):
|
def get_rect(self):
|
||||||
@@ -145,11 +152,31 @@ class GameObject():
|
|||||||
#print(pos)
|
#print(pos)
|
||||||
#print(self.get_position())
|
#print(self.get_position())
|
||||||
|
|
||||||
|
#Behandelt später die Hauptschleife und Klassenobjekte
|
||||||
class Playerfollower(GameObject):
|
class Game():
|
||||||
|
__state = {"win":False, "lose":False, "paused":False}
|
||||||
|
def __init__(self) -> None:
|
||||||
|
pass
|
||||||
|
#Handles all collided objects an adds it as Playerfollower
|
||||||
|
class Follower(GameObject):
|
||||||
def __init__(self, name: str, posx_init: int = 0, posy_init: int = 0, move_speed: int = 0, is_player: bool = False) -> None:
|
def __init__(self, name: str, posx_init: int = 0, posy_init: int = 0, move_speed: int = 0, is_player: bool = False) -> None:
|
||||||
super().__init__(name, posx_init, posy_init, move_speed, is_player)
|
super().__init__(name, posx_init, posy_init, move_speed, is_player)
|
||||||
|
|
||||||
|
def set_position(self, pos:tuple, playermovedirection:list):
|
||||||
|
|
||||||
|
if(playermovedirection["up"]):
|
||||||
|
self.__pos_y = pos[1]+60
|
||||||
|
self.__pos_x = pos[0]
|
||||||
|
if(playermovedirection["down"]):
|
||||||
|
self.__pos_y = pos[1]-60
|
||||||
|
self.__pos_x = pos[0]
|
||||||
|
if(playermovedirection["left"]):
|
||||||
|
self.__pos_x = pos[0]+60
|
||||||
|
self.__pos_y = pos[1]
|
||||||
|
if(playermovedirection["right"]):
|
||||||
|
self.__pos_x = pos[0]-60
|
||||||
|
self.__pos_y = pos[1]
|
||||||
|
|
||||||
def start_game():
|
def start_game():
|
||||||
menu.disable()
|
menu.disable()
|
||||||
return 0
|
return 0
|
||||||
@@ -170,74 +197,17 @@ def spawn_entities(x:int):
|
|||||||
count = 0
|
count = 0
|
||||||
for y in range(x):
|
for y in range(x):
|
||||||
Entity = GameObject("Entitiy-"+str(count), rand.randint(1,MAINSCREEN_SIZE[0]), rand.randint(1,MAINSCREEN_SIZE[1]), rand.randint(1,15))
|
Entity = GameObject("Entitiy-"+str(count), rand.randint(1,MAINSCREEN_SIZE[0]), rand.randint(1,MAINSCREEN_SIZE[1]), rand.randint(1,15))
|
||||||
Entity_rect = Entity.get_rect()
|
Entity.get_name(True)
|
||||||
Objects.append(Entity)
|
Objects.append(Entity)
|
||||||
count += 1
|
count += 1
|
||||||
for x in Objects:
|
for x in Objects:
|
||||||
print(x)
|
print(x)
|
||||||
return list(Objects)
|
return list(Objects)
|
||||||
|
|
||||||
"""def spawn_entities(x:int):
|
|
||||||
entity_count = x
|
|
||||||
count = 0
|
|
||||||
Objects = list()
|
|
||||||
print("Erstelle "+str(x)+" Objekte")
|
|
||||||
while(entity_count != 0):
|
|
||||||
Entity = GameObject("Entitiy-"+str(count), rand.randint(1,MAINSCREEN_SIZE[0]), rand.randint(1,MAINSCREEN_SIZE[1]), rand.randint(1,15))
|
|
||||||
Entity_pos = Entity.get_position()
|
|
||||||
|
|
||||||
if(count == 0):
|
|
||||||
Objects.append(Entity)
|
|
||||||
entity_count -= 1
|
|
||||||
print("Erstes Objekt erstellt")
|
|
||||||
else:
|
|
||||||
for x in Objects:
|
|
||||||
x:GameObject
|
|
||||||
#print(Entity_pos)
|
|
||||||
#print(x.get_position())
|
|
||||||
if(Entity_pos[0] <= (x.get_position()[0]-60) or Entity_pos[0] >= (x.get_position()[0] +60)):
|
|
||||||
if(Entity_pos[1] <= (x.get_position()[1]-60) or (Entity_pos[1] >= x.get_position()[1] +60)):
|
|
||||||
Objects.append(Entity)
|
|
||||||
entity_count -= 1
|
|
||||||
|
|
||||||
|
|
||||||
count += 1
|
|
||||||
print("Versuch: "+str(count), end="\r")
|
|
||||||
if(count == 20): break
|
|
||||||
|
|
||||||
return list(Objects)"""
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Player = GameObject("Player", 10, 10, 10, is_player=False)
|
Player = GameObject("Player", 10, 10, 10, is_player=False)
|
||||||
|
|
||||||
background = pygame.surface.Surface((640,480))
|
background = pygame.surface.Surface((640,480))
|
||||||
|
|
||||||
#Behandelt später die Hauptschleife und Klassenobjekte
|
|
||||||
class Game():
|
|
||||||
__state = {"win":False, "lose":False, "paused":False}
|
|
||||||
def __init__(self) -> None:
|
|
||||||
pass
|
|
||||||
|
|
||||||
class Follower(GameObject):
|
|
||||||
def __init__(self, name: str, posx_init: int = 0, posy_init: int = 0, move_speed: int = 0, is_player: bool = False) -> None:
|
|
||||||
super().__init__(name, posx_init, posy_init, move_speed, is_player)
|
|
||||||
|
|
||||||
def set_position(self, pos:tuple, playermovedirection:list):
|
|
||||||
|
|
||||||
if(playermovedirection["up"]):
|
|
||||||
self.__pos_y = pos[1]+60
|
|
||||||
self.__pos_x = pos[0]
|
|
||||||
if(playermovedirection["down"]):
|
|
||||||
self.__pos_y = pos[1]-60
|
|
||||||
self.__pos_x = pos[0]
|
|
||||||
if(playermovedirection["left"]):
|
|
||||||
self.__pos_x = pos[0]+60
|
|
||||||
self.__pos_y = pos[1]
|
|
||||||
if(playermovedirection["right"]):
|
|
||||||
self.__pos_x = pos[0]-60
|
|
||||||
self.__pos_y = pos[1]
|
|
||||||
|
|
||||||
x = 3600
|
x = 3600
|
||||||
invert = False
|
invert = False
|
||||||
@@ -245,7 +215,7 @@ spawned_entities = spawn_entities(10) #Spawnt eine definierte Anzahl an GameObje
|
|||||||
count_spawend_enities = len(spawned_entities)
|
count_spawend_enities = len(spawned_entities)
|
||||||
test_grid_x = MAINSCREEN_SIZE[0]/60
|
test_grid_x = MAINSCREEN_SIZE[0]/60
|
||||||
colided_objects = list()
|
colided_objects = list()
|
||||||
|
count_hidden_entities = 0
|
||||||
#Fenster-Hauptschleife
|
#Fenster-Hauptschleife
|
||||||
while active == True:
|
while active == True:
|
||||||
MAINSCREEN.fill((255,255,255))
|
MAINSCREEN.fill((255,255,255))
|
||||||
@@ -272,8 +242,6 @@ while active == True:
|
|||||||
Player.move(5)
|
Player.move(5)
|
||||||
|
|
||||||
#Spawns the Entities
|
#Spawns the Entities
|
||||||
count_hidden_entities = 0
|
|
||||||
|
|
||||||
for y in spawned_entities:
|
for y in spawned_entities:
|
||||||
y:GameObject
|
y:GameObject
|
||||||
|
|
||||||
@@ -281,7 +249,7 @@ while active == True:
|
|||||||
#Der erste Follower folgt dem Spieler, alle übrigen folgen den vorherien Verfolgern
|
#Der erste Follower folgt dem Spieler, alle übrigen folgen den vorherien Verfolgern
|
||||||
#y.hide()
|
#y.hide()
|
||||||
count_hidden_entities += 1
|
count_hidden_entities += 1
|
||||||
colidedobj = Follower(y)
|
colidedobj = Follower(y.get_name())
|
||||||
colided_objects.append(colidedobj)
|
colided_objects.append(colidedobj)
|
||||||
spawned_entities.remove(y)
|
spawned_entities.remove(y)
|
||||||
|
|
||||||
@@ -299,25 +267,25 @@ while active == True:
|
|||||||
print(len(colided_objects))
|
print(len(colided_objects))
|
||||||
obj1_count = 0
|
obj1_count = 0
|
||||||
for obj1 in colided_objects:
|
for obj1 in colided_objects:
|
||||||
obj1:Follower
|
|
||||||
Player:GameObject
|
Player:GameObject
|
||||||
print(Player.get_position())
|
obj1:Follower
|
||||||
obj1.set_position(Player.get_position(), Player.get_playermovedirection())
|
obj1.set_position((1,1), Player.get_playermovedirection())
|
||||||
print(obj1.get_position())
|
obj1.get_position(True)
|
||||||
#print(Player.get_playermovedirection())
|
obj1.get_name(True)
|
||||||
obj1.draw()
|
#obj1.get_name(True)
|
||||||
"""Drawing Lines test
|
|
||||||
pos = 0
|
|
||||||
for x in range(20):
|
|
||||||
pos += 60
|
|
||||||
pygame.draw.line(MAINSCREEN, (0,0,0), (pos,0),(pos,MAINSCREEN_SIZE[1]))"""
|
|
||||||
|
|
||||||
if(x == 0):
|
if(x == 0):
|
||||||
for y in spawned_entities:
|
for y in spawned_entities:
|
||||||
y.hide()
|
y.hide()
|
||||||
pass
|
pass
|
||||||
x -= 1
|
x -= 1
|
||||||
|
|
||||||
|
"""Drawing Lines test
|
||||||
|
pos = 0
|
||||||
|
for x in range(20):
|
||||||
|
pos += 60
|
||||||
|
pygame.draw.line(MAINSCREEN, (0,0,0), (pos,0),(pos,MAINSCREEN_SIZE[1]))"""
|
||||||
|
|
||||||
#print("Objekt-Koordinaten= X: "+str(rect1.x)+" Y: "+str(rect1.y)+"", end="\r")
|
#print("Objekt-Koordinaten= X: "+str(rect1.x)+" Y: "+str(rect1.y)+"", end="\r")
|
||||||
|
|
||||||
#Displayflip sorgt dafür, dass das Fenster entsprechend der Tickrate aktualisiert wird
|
#Displayflip sorgt dafür, dass das Fenster entsprechend der Tickrate aktualisiert wird
|
||||||
|
|||||||
Reference in New Issue
Block a user