Added player collision detect

This commit is contained in:
Christian
2024-08-13 15:43:22 +02:00
parent 5b8f38bab2
commit 644c418b2d
2 changed files with 31 additions and 17 deletions

View File

@@ -4,10 +4,10 @@ class GameObject(object):
objects = list()
def __init__(self, name, pos_x, pos_y, width, height, image=None) -> None:
self.name = name
self.pos_x = pos_x
self.pos_y = pos_y
self.width = width
self.height = height
self.pos_x:int = pos_x
self.pos_y:int = pos_y
self.width:int = width
self.height:int = height
self.image = image
self.rect:pygame.Rect
self.objects.append(self)
@@ -149,6 +149,10 @@ class Enemy(GameObject):
if(y != 0):
self.pos_y += y
def movementqueue_run(self):
pass
class Projectile(GameObject):
shots = list()
_id_count = 0

36
test.py
View File

@@ -6,8 +6,6 @@ import random
import subprocess
pygame.init()
pygame.display.set_caption("TESTFENSTER")
pygame.mouse.set_visible(True)
#pygame.key.set_repeat(1, 30)
@@ -65,17 +63,17 @@ while(gamestate):
player1.handle_input(event)
player2.handle_input(event)
if(player1.keymap["left"] == True):
player1.move("left")
if(player1.keymap["left"] == True and player1.pos_x > 0):
player1.move("left")
#print("links")
if(player1.keymap["right"] == True):
player1.move("right")
if(player1.keymap["right"] == True and player1.pos_x <= (screen.get_size()[0]-player1.width)):
player1.move("right")
#print("rechts")
if(player2.keymap["left"] == True):
if(player2.keymap["left"] == True and player2.pos_x > 0):
player2.move("left")
#print("links")
if(player2.keymap["right"] == True):
if(player2.keymap["right"] == True and player2.pos_x <= (screen.get_size()[0]-player2.width)):
player2.move("right")
#print("rechts")
@@ -99,7 +97,6 @@ while(gamestate):
player1.firecontrol(screen)
player2.firecontrol(screen)
print("Spieler1 Lifes: ", player1.lifes)
print("Spieler2 Lifes: ", player2.lifes)
@@ -112,6 +109,10 @@ while(gamestate):
#Check if player hits an enemy delete it
for enemy in spawned_enemys:
enemy:GameObject.Enemy
if(pygame.Rect.colliderect(player1.rect, player2.rect)):
#TODO: Laterrr!!
#print("Collision")
pass
if(pygame.Rect.colliderect(projectile.rect, enemy.rect)):
#print("HIT")
#Check if only a playerhit despawn enemys
@@ -135,14 +136,20 @@ while(gamestate):
if(pygame.Rect.colliderect(projectile.rect, player1.rect)):
#print("Game-Over")
player1.lifes -= 1
index = GameObject.Projectile.shots.index(projectiles)
del GameObject.Projectile.shots[index]
try:
index = GameObject.Projectile.shots.index(projectiles)
del GameObject.Projectile.shots[index]
except:
print("Error on indexing projectile")
#TODO Add Gameover event
if(pygame.Rect.colliderect(projectile.rect, player2.rect)):
#print("Game-Over")
player2.lifes -= 1
index = GameObject.Projectile.shots.index(projectiles)
del GameObject.Projectile.shots[index]
try:
index = GameObject.Projectile.shots.index(projectiles)
del GameObject.Projectile.shots[index]
except:
print("Error on indexing projectile")
#TODO Add Gameover event
#Check for bullets out of playground and delete it
@@ -167,11 +174,14 @@ while(gamestate):
enemy:GameObject.Enemy
if rand == 20:
enemy.move(5)
#enemy.movementqueue.append(5)
if rand == 50:
enemy.move(-5)
#enemy.movementqueue.append(-5)
rand1 = random.randint(0, 1000)
if rand1 == 50:
enemy.fire(screen)
enemy.render(screen)
enemy.firecontrol(screen)