Added projectile chceck for hit

This commit is contained in:
Christian
2024-08-10 12:33:19 +02:00
parent 0436abb866
commit 1fbf891916
2 changed files with 51 additions and 12 deletions

View File

@@ -41,6 +41,7 @@ class Player(GameObject):
super().__init__(name, pos_x, pos_y, width, height, image) super().__init__(name, pos_x, pos_y, width, height, image)
self._speed = 10 self._speed = 10
self.screen = screen self.screen = screen
self.points = 0
def handle_input(self, event:pygame.event.EventType): def handle_input(self, event:pygame.event.EventType):

52
test.py
View File

@@ -21,6 +21,15 @@ testimage = Utils.load_image("Rastergrafik.png")
enemy = GameObject.Enemy("Enemy-1", (screen.get_size()[0]/2) -30,30,35,35, screen, testimage) 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) 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 gamestate = True
pos_x = 50 pos_x = 50
@@ -37,10 +46,10 @@ while(gamestate):
if(player.keymap["left"] == True): if(player.keymap["left"] == True):
player.move("left") player.move("left")
print("links") #print("links")
if(player.keymap["right"] == True): if(player.keymap["right"] == True):
player.move("right") player.move("right")
print("rechts") #print("rechts")
image = screen.blit(testimage, (pos_x, pos_y)) image = screen.blit(testimage, (pos_x, pos_y))
@@ -62,25 +71,54 @@ while(gamestate):
#Rendere alle Objecte in objects Liste #Rendere alle Objecte in objects Liste
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]
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) rand = random.randint(0, 100)
for enemy in spawned_enemys:
enemy:GameObject.Enemy
if rand == 50: if rand == 50:
enemy.fire(screen) enemy.fire(screen)
if rand == 20: if rand == 20:
enemy.move(5) enemy.move(5)
if rand == 50: if rand == 50:
enemy.move(-5) enemy.move(-5)
enemy.shoot() enemy.shoot()
player.firecontrol(screen)
player.render(screen)
enemy.render(screen) enemy.render(screen)
#if(mouse_pos <= (image.topleft+image.size) and mouse_pos >= image.topleft): #if(mouse_pos <= (image.topleft+image.size) and mouse_pos >= image.topleft):
# print("HIIIIITTT!!!!") # print("HIIIIITTT!!!!")