New class for Follower added

Masterclass copy seems not working correctly
This commit is contained in:
2023-12-31 18:08:26 +01:00
parent 594b4a4b33
commit e3fc96bff8

View File

@@ -141,19 +141,7 @@ class GameObject():
self.__hide = True
"""TODO: Delete obeject function"""
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]
#print(pos)
#print(self.get_position())
@@ -231,13 +219,32 @@ 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
invert = False
spawned_entities = spawn_entities(10) #Spawnt eine definierte Anzahl an GameObjekten
count_spawend_enities = len(spawned_entities)
test_grid_x = MAINSCREEN_SIZE[0]/60
colided_objects = list()
#Fenster-Hauptschleife
while active == True:
@@ -266,8 +273,7 @@ while active == True:
#Spawns the Entities
count_hidden_entities = 0
first_follower:GameObject
last_object:GameObject = None
for y in spawned_entities:
y:GameObject
@@ -275,30 +281,13 @@ while active == True:
#Der erste Follower folgt dem Spieler, alle übrigen folgen den vorherien Verfolgern
#y.hide()
count_hidden_entities += 1
if(Player.has_follower() == False):
Player.set_follower()
last_object = y
print("Erste Verfolger: ", end=" ")
print(last_object)
if(last_object):
print("This Object: ", end=" ")
print(y)
print("Last Objetct: ", end=" ")
print("Last Objetct: ", end=" ")
print(last_object)
print("Position letztes Objekte: ", end=" ")
print(last_object.get_position())
print("Position aktuelles Objekt:", end=" ")
print(y.get_position())
y.set_position(last_object.get_position(), Player.get_playermovedirection())
y.set_position(Player.get_position(), Player.get_playermovedirection())
last_object = y
y.draw()
y.collide(Player)
colidedobj = Follower(y)
colided_objects.append(colidedobj)
spawned_entities.remove(y)
if(y.is_collided() == False):
y.draw()
y.collide(Player)
if(count_hidden_entities == count_spawend_enities):
print("WIN!!!")
@@ -307,6 +296,16 @@ while active == True:
menu.mainloop(MAINSCREEN)
break
print(len(colided_objects))
obj1_count = 0
for obj1 in colided_objects:
obj1:Follower
Player:GameObject
print(Player.get_position())
obj1.set_position(Player.get_position(), Player.get_playermovedirection())
print(obj1.get_position())
#print(Player.get_playermovedirection())
obj1.draw()
"""Drawing Lines test
pos = 0
for x in range(20):