Update of GameObjects module

Code cleanup
This commit is contained in:
2024-02-01 14:36:30 +01:00
parent 65ac13612d
commit 3284f3d0ac
2 changed files with 37 additions and 73 deletions

View File

@@ -16,6 +16,7 @@ my_font3 = pygame.font.SysFont('times new roman', 46)
WEISS = ( 255, 255, 255)
SCHWARZ = (0,0,0)
GRUEN = (0, 255, 0)
ROT = (255,0,0)
active = True
@@ -65,12 +66,6 @@ def apply_name(input):
#TODO: Add function for save name
pass
count_follower = 0
def append_follwer(x,y):
print("x: "+str(x), "y: "+str(y))
newfollower = Block("Follower "+str(count_follower), MAINSCREEN, MAINSCREEN_SIZE, is_rect=True, rect_size=(x,y))
colided_objects.append(newfollower)
User = User.User()
@@ -97,19 +92,9 @@ background = pygame.surface.Surface((640,480))
x = 3600
invert = False
colided_objects = list()
spawned_entities = list()
spawn_entities(2, spawned_entities)
count_hidden_entities = 0
count_spawend_enities = len(spawned_entities)
print("Es wurden " + str(count_spawend_enities)+ " Objekte gespawnt")
testx = 10
testy = 10
counter = 0
#TESTOBJECT = GameObject_new("Testobjekt", MAINSCREEN, MAINSCREEN_SIZE, 0, 0)
#print(help(TESTOBJECT))
#TESTOBJECT.printall_attributes()
@@ -140,16 +125,19 @@ while active == True:
game_started = True
player.change_direction("left")
text_surface = my_font.render('Score: '+str(player.get_player_score()), True, (0, 0, 0))
MAINSCREEN.blit(text_surface, (MAINSCREEN_SIZE[0]/2-text_surface.get_size()[0]/2,0)) #Paints the Scoreboard in Top/Center
text_surface_score = my_font.render('Score: '+str(player.get_player_score()), True, (0, 0, 0))
text_surface_player = my_font.render("Player: " + User.getusername(), True, SCHWARZ, None)
MAINSCREEN.blit(text_surface_score, (MAINSCREEN_SIZE[0]/2-text_surface_score.get_size()[0]/2,0)) #Paints the Scoreboard in Top/Center
MAINSCREEN.blit(text_surface_player, (10, 0))
if(spawn_fruit == True):
fruit = GameObject("Fruit", MAINSCREEN, MAINSCREEN_SIZE, posx_init=rand.randint(0, MAINSCREEN_SIZE[0]), posy_init=rand.randint(0, MAINSCREEN_SIZE[1]), rect_size=(40,40), color=GRUEN)
fruit = Fruit("Fruit", MAINSCREEN, MAINSCREEN_SIZE, init_pos_x=rand.randint(0, MAINSCREEN_SIZE[0]-40), init_pos_y=rand.randint(0, MAINSCREEN_SIZE[1]-40), color=ROT, rect_size=40, score_points=10)
spawn_fruit = False
if(fruit.is_collided() == False):
fruit.draw()
if(fruit):
fruit.draw()
player.draw()
if(game_started == True and player.collide_self() == False):
@@ -158,62 +146,23 @@ while active == True:
if(player.collide_self()):
game_started == False
gameovertext = my_font2.render("Game Over!", True, SCHWARZ)
if(player.get_player_score() > User.gethighscore()):
User.update_user_highscore(player.get_player_score())
MAINSCREEN.blit(gameovertext, (MAINSCREEN_SIZE[0]/2-gameovertext.get_size()[0]/2, MAINSCREEN_SIZE[1]/2-gameovertext.get_size()[1]/2))
if(player.collide_fruit(fruit.get_rect()) == True and fruit.is_collided() == False):
fruit.set_collided()
#print("Kollision")
if(player.collide_fruit(fruit.get_rect()) == True and fruit):
player.add_body()
player.inc_score(fruit.get_score_points())
del fruit
spawn_fruit=True
#print(player.get_position())
#print(player.get_player_rect())
#print("Aktuelle Position: " + str(player.get_position()))
#print("Aktuell kollidierte Objekte: ", str(count_hidden_entities))
#Spawns the Entities
"""
for y in spawned_entities:
y:Block
y.draw()
if(y.is_collided() == True):
#Der erste Follower folgt dem Spieler, alle übrigen folgen den vorherien Verfolgern
y.hide()
pass
if(y.is_collided() == False):
if(y.collide(player)):
print(F"Score: {y.get_score()}")
player.update_player_score(y.get_score())
print(F"Aktueller playerscore: {player.get_player_score()}")
count_hidden_entities += 1
xy = y.get_rect_size()
append_follwer(xy[0], xy[1])
count_follower += 1"""
#Zeichnet alle Verfolgerobjekte, sofern sie vorliegend sind
#TODO: Follower sollen ab dem zweiten Objekt dem vorangegangenen Objekt folgen und nicht dem player
#if(colided_objects):
# colided_objects[0].set_position_player(player.get_position(), player.get_playermovedirection(), True)
i=0
if(count_hidden_entities == count_spawend_enities):
print("WIN!!!")
if(player.get_player_score() > User.gethighscore()):
print("Neuer Highscore!!!")
User.update_user_highscore(player.get_player_score())
menu.enable()
menu.add.label("WIN", "win", 10)
menu.mainloop(MAINSCREEN)
break
if(x == 0):
for y in spawned_entities:
#y.hide()
pass
x -= 1
#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