import pygame import GameObject import Utils import random pygame.init() pygame.display.set_caption("TESTFENSTER") pygame.mouse.set_visible(True) #pygame.key.set_repeat(1, 30) screen = pygame.display.set_mode((800,600)) clock = pygame.time.Clock() image_enemy = Utils.load_image("Rastergrafik.png") testimage = Utils.load_image("Rastergrafik.png") font1 = pygame.font.SysFont("Arial", 32) #testimage.set_colorkey((255,0,255), pygame.RLEACCELOK) enemy = GameObject.Enemy("Enemy-1", (screen.get_size()[0]/2) -30,30,35,35, screen, testimage) player = GameObject.Player("Player", screen,(screen.get_size()[0]/2)-17, screen.get_size()[1]-100, 35, 35, testimage) spawned_enemys = list() i = 0 startpos_x = 0 for enemys in range(15): spawned_enemys.append(GameObject.Enemy(F"Enemy-{i}", startpos_x,30,35,35, screen, testimage)) startpos_x += 50 i += 1 gamestate = True pos_x = 50 pos_y = 50 while(gamestate): screen.fill((255,255,255)) for event in pygame.event.get(): if(event.type == pygame.QUIT): gamestate = False player.handle_input(event) if(player.keymap["left"] == True): player.move("left") #print("links") if(player.keymap["right"] == True): player.move("right") #print("rechts") image = screen.blit(testimage, (pos_x, pos_y)) mouse_pos = pygame.mouse.get_pos() #print(mouse_pos) #print(image.topleft) #Gibt die Position einen Surfaces "obenlinks" aus #print(image.size) #Gibt die Größe eines Surfaces aus max = tuple(map(lambda i, j : i+j, image.topleft, image.size)) #Wenn Mausposition X-Achse innerhalb Anfangsposition+Breite if(mouse_pos[0] <= max[0] and mouse_pos[0] >= image.topleft[0]): #Wenn Mausposition Y-Achse innerhalb Anfangsposition+Höhe if(mouse_pos[1] <= max[1] and mouse_pos[1] >= image.topleft[1]): print("Treffer") pos_x = mouse_pos[0] pos_y = mouse_pos[1] player.firecontrol(screen) for projectiles in GameObject.Projectile.shots: projectiles:dict for key, projectile in projectiles.items(): projectile:GameObject.Projectile #Check if player hits an enemy delete it for enemy in spawned_enemys: enemy:GameObject.Enemy if(pygame.Rect.colliderect(projectile.rect, enemy.rect)): print("HIT") player.points += 10 index = spawned_enemys.index(enemy) del spawned_enemys[index] index = GameObject.Projectile.shots.index(projectiles) del GameObject.Projectile.shots[index] print(F"Player-Points: {player.points}") if(pygame.Rect.colliderect(projectile.rect, player.rect)): print("Game-OVer") #Check for bullets out of playground and delete it if((projectile.pos_y > screen.get_size()[1]) or (projectile.pos_y < 0)): #print(F"Lösche: {projectile}") index = GameObject.Projectile.shots.index(projectiles) del GameObject.Projectile.shots[index] player.render(screen) rand = random.randint(0, 100) for enemy in spawned_enemys: enemy:GameObject.Enemy if rand == 50: enemy.fire(screen) if rand == 20: enemy.move(5) if rand == 50: enemy.move(-5) enemy.shoot() enemy.render(screen) label1 = font1.render(F"Playerscore: {player.points}", True, (255,0,0)) screen.blit(label1, (500,500)) #if(mouse_pos <= (image.topleft+image.size) and mouse_pos >= image.topleft): # print("HIIIIITTT!!!!") clock.tick(60) pygame.display.flip()