Added player collision detect
This commit is contained in:
@@ -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
36
test.py
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user