Debuged change of rectsize on collision with player rect
This commit is contained in:
@@ -26,9 +26,10 @@ class GameObject():
|
||||
__pos_x = int()
|
||||
__pos_y = int()
|
||||
__color = (0,0,0)
|
||||
__size_rect = {"x":0, "y":0}
|
||||
__size_rect_x:int
|
||||
__size_rect_y:int
|
||||
__movespeed = int()
|
||||
__rectobjekt = pygame.Rect
|
||||
__rectobjekt:pygame.Rect #Hier bitte ändern!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
__surface = MAINSCREEN
|
||||
__hide = False
|
||||
__collided = False
|
||||
@@ -47,8 +48,8 @@ class GameObject():
|
||||
self.__movespeed = move_speed
|
||||
self.__is_player = is_player
|
||||
self.__is_rect = is_rect
|
||||
self.__size_rect["x"] = rect_size[0]
|
||||
self.__size_rect["y"] = rect_size[1]
|
||||
self.__size_rect_x = rect_size[0]
|
||||
self.__size_rect_y = rect_size[1]
|
||||
|
||||
#self.__rectobjekt = rect
|
||||
|
||||
@@ -67,26 +68,26 @@ class GameObject():
|
||||
if(self.__movedirection['up']):
|
||||
if(not speed): self.__pos_y -= MOVE_SPEED
|
||||
else: self.__pos_y -= speed[0]
|
||||
if(self.__pos_y <= -self.__size_rect["y"]):
|
||||
if(self.__pos_y <= -self.__size_rect_y):
|
||||
self.__pos_y = MAINSCREEN_SIZE[1]
|
||||
|
||||
elif(self.__movedirection['down']):
|
||||
if(not speed): self.__pos_y += MOVE_SPEED
|
||||
else: self.__pos_y += speed[0]
|
||||
if(self.__pos_y >= MAINSCREEN_SIZE[1]):
|
||||
self.__pos_y = -self.__size_rect["y"]
|
||||
self.__pos_y = -self.__size_rect_y
|
||||
|
||||
elif(self.__movedirection['left']):
|
||||
if(not speed): self.__pos_x -= MOVE_SPEED
|
||||
else: self.__pos_x -= speed[0]
|
||||
if(self.__pos_x <= -self.__size_rect["x"]):
|
||||
if(self.__pos_x <= -self.__size_rect_x):
|
||||
self.__pos_x = MAINSCREEN_SIZE[0]
|
||||
|
||||
elif(self.__movedirection['right']):
|
||||
if(not speed): self.__pos_x += MOVE_SPEED
|
||||
else: self.__pos_x += speed[0]
|
||||
if(self.__pos_x >= MAINSCREEN_SIZE[0]):
|
||||
self.__pos_x = -self.__size_rect["x"]
|
||||
self.__pos_x = -self.__size_rect_x
|
||||
|
||||
|
||||
#print("Objekt-Koordinaten "+self.__name+"= X: "+str(self.__rectobjekt.x)+" Y: "+str(self.__rectobjekt.y), end="\r")
|
||||
@@ -94,12 +95,8 @@ class GameObject():
|
||||
def draw(self):
|
||||
#font = pygame.font.SysFont(None, 70)
|
||||
#text = font.render("TEST", True, (0,0,0) )
|
||||
if(self.__hide == False): # Update this --redraw each 10 pixels or self_size
|
||||
if(self.__is_player == True):
|
||||
self.__updatepos(self.__pos_x, self.__pos_y)
|
||||
self.__rectobjekt = pygame.draw.rect(self.__surface, self.__color, [self.__last_pos_x, self.__last_pos_y,self.__size_rect["x"],self.__size_rect["y"]])
|
||||
else:
|
||||
self.__rectobjekt = pygame.draw.rect(self.__surface, self.__color, [self.__pos_x, self.__pos_y,self.__size_rect["x"],self.__size_rect["y"]])
|
||||
if(not self.__hide):
|
||||
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_name(self, debug=False):
|
||||
if(debug):
|
||||
@@ -114,6 +111,9 @@ class GameObject():
|
||||
def get_rect(self):
|
||||
return self.__rectobjekt
|
||||
|
||||
def get_rect_size(self):
|
||||
return (self.__size_rect_x, self.__size_rect_y)
|
||||
|
||||
def get_movespeed(self):
|
||||
return self.__movespeed
|
||||
|
||||
@@ -126,12 +126,6 @@ class GameObject():
|
||||
def set_follower(self):
|
||||
self.__has_follower = True
|
||||
|
||||
def __updatepos(self, posx, posy):
|
||||
if posx == (self.__last_pos_x + self.__size_rect["x"]): self.__last_pos_x = self.__pos_x
|
||||
if posy == (self.__last_pos_y + self.__size_rect["y"]): self.__last_pos_y = self.__pos_y
|
||||
print("x= "+str(self.__last_pos_x)+" y= "+str(self.__last_pos_y), end="\r")
|
||||
pass
|
||||
|
||||
def is_collided(self) -> bool:
|
||||
return self.__collided
|
||||
|
||||
@@ -191,36 +185,41 @@ def apply_name():
|
||||
#TODO: Add function for save name
|
||||
pass
|
||||
|
||||
count_follower = 0
|
||||
|
||||
def append_follwer(x,y):
|
||||
print("x: "+str(x), "y: "+str(y))
|
||||
newfollower = Follower("Follower "+str(count_follower), is_rect=True, rect_size=(x,y))
|
||||
colided_objects.append(newfollower)
|
||||
|
||||
menu = pygame_menu.Menu("Snake v1.0", 400, 300,)
|
||||
menu.add.text_input("Name: ", onreturn=apply_name)
|
||||
menu.add.button('Play', start_game)
|
||||
menu.add.button('Quit', pygame_menu.events.EXIT)
|
||||
menu.mainloop(MAINSCREEN)
|
||||
|
||||
def spawn_entities(x:int):
|
||||
Objects = list()
|
||||
def spawn_entities(x:int, list_of_objects:list):
|
||||
count = 0
|
||||
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), is_rect=True, rect_size=(100,100))
|
||||
rect_size = rand.randint(50, 100)
|
||||
Entity = GameObject("Entitiy-"+str(count), rand.randint(1,MAINSCREEN_SIZE[0]), rand.randint(1,MAINSCREEN_SIZE[1]), rand.randint(1,15), is_rect=True, rect_size=(rect_size,rect_size))
|
||||
Entity.get_name(True)
|
||||
Objects.append(Entity)
|
||||
list_of_objects.append(Entity)
|
||||
count += 1
|
||||
for x in Objects:
|
||||
print(x)
|
||||
return list(Objects)
|
||||
|
||||
Player = GameObject("Player", 10, 10, 10, is_player=False, is_rect=True, rect_size=(20,20))
|
||||
Player = GameObject("Player", 10, 10, 10, is_player=False, is_rect=True, rect_size=(50,50))
|
||||
|
||||
background = pygame.surface.Surface((640,480))
|
||||
|
||||
|
||||
x = 3600
|
||||
invert = False
|
||||
spawned_entities = spawn_entities(10) #Spawnt eine definierte Anzahl an GameObjekten
|
||||
colided_objects = list()
|
||||
spawned_entities = list()
|
||||
spawn_entities(30, spawned_entities)
|
||||
count_hidden_entities = 0
|
||||
count_spawend_enities = len(spawned_entities)
|
||||
print("Es wurden " + str(count_spawend_enities)+ " Objekte gespawnt")
|
||||
colided_objects = list()
|
||||
|
||||
#Fenster-Hauptschleife
|
||||
while active == True:
|
||||
@@ -247,7 +246,6 @@ while active == True:
|
||||
Player.draw()
|
||||
Player.move(5)
|
||||
print("Aktuell kollidierte Objekte: ", str(count_hidden_entities))
|
||||
|
||||
#Spawns the Entities
|
||||
for y in spawned_entities:
|
||||
y:GameObject
|
||||
@@ -261,7 +259,13 @@ while active == True:
|
||||
count_hidden_entities += 1
|
||||
#TODO Hardcopy der Gameobjects calss // Funktion manipuliert aktive Gameobjekte, welche mit vererbter Klasse instanziert werden
|
||||
#Grund hierfür, konnte noch nicht ausfindig gemacht werden!
|
||||
colided_objects.append(Follower(y.get_name(), is_rect=True, rect_size=(50,50)))
|
||||
xy = y.get_rect_size()
|
||||
append_follwer(xy[0], xy[1])
|
||||
count_follower += 1
|
||||
|
||||
for follower in colided_objects:
|
||||
follower:Follower
|
||||
follower.draw()
|
||||
|
||||
|
||||
if(count_hidden_entities == count_spawend_enities):
|
||||
|
||||
Reference in New Issue
Block a user