Some changes..

This commit is contained in:
Christian
2024-08-09 14:17:24 +02:00
parent 334df6bb25
commit c29ed8af33
2 changed files with 41 additions and 10 deletions

View File

@@ -35,10 +35,10 @@ class GameObject(object):
self.height = height
class Player(GameObject):
shots_fired = list()
def __init__(self, name, pos_x, pos_y, width, height, image=None) -> None:
def __init__(self, name, screen, pos_x, pos_y, width, height, image=None) -> None:
super().__init__(name, pos_x, pos_y, width, height, image)
self._speed = 10
self.screen = screen
def handle_input(self, event:pygame.event.EventType):
keys =pygame.key.get_pressed()
@@ -56,7 +56,7 @@ class Player(GameObject):
if(event.key == pygame.K_SPACE):
#Fiiirrreee in the hole
print("Feuer!")
pass
self.fire(self.screen)
def move(self, x=0, y=0):
if x != 0:
@@ -64,6 +64,24 @@ class Player(GameObject):
if y != 0:
self.pos_y += y
def fire(self, screen):
shot = Projectile(self.name, self.pos_x+(self.width/2),self.pos_y-self.height,5,10, screen)
def firecontrol(self, screen):
if(len(Projectile.shots) >0):
for objects in Projectile.shots:
objects:dict
for key, object in objects.items():
object:Projectile
if(key == "Player"):
object.animate("UP")
#print("Playerschuss!")
if(key == "Enemy"):
print(object.pos_x, " ", object.pos_y)
class Enemy(GameObject):
shots_fired = list()
def __init__(self, name, pos_x, pos_y, width, height, screen, image=None) -> None:
@@ -71,14 +89,14 @@ class Enemy(GameObject):
def fire(self, screen):
print("Schieße!!!!")
shot = Projectile(" ", self.pos_x+(self.width/2),self.pos_y+self.height,5,10, screen)
shot = Projectile("Enemy", self.pos_x+(self.width/2),self.pos_y+self.height,5,10, screen)
self.shots_fired.append(shot)
def shoot(self):
if(len(self.shots_fired) > 0):
for shots in self.shots_fired:
shots:Projectile
shots.animate()
shots.animate("DOWN")
def move(self, x=0, y=0):
if(x != 0):
@@ -87,11 +105,23 @@ class Enemy(GameObject):
self.pos_y += y
class Projectile(GameObject):
shots = list()
def __init__(self, name, pos_x, pos_y, width, height, screen, image=None) -> None:
super().__init__(name, pos_x, pos_y, width, height, image)
self.screen = screen
self.screen:pygame.Surface = screen
self.speed = 10
def animate(self):
self.shot = {name:self}
self.shots.append(self.shot)
def animate(self, direction):
self.rect = pygame.draw.rect(self.screen, (0,0,0), (self.pos_x, self.pos_y, self.width, self.height))
self.pos_y += self.speed
if(direction == "UP"):
self.pos_y -= self.speed
if(direction == "DOWN"):
self.pos_y += self.speed
if(self.pos_y >= self.screen.get_size()[1]):
print()

View File

@@ -19,7 +19,7 @@ testimage = Utils.load_image("Rastergrafik.png")
#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("TEST", (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)
gamestate = True
@@ -47,7 +47,7 @@ while(gamestate):
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
#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]
@@ -67,6 +67,7 @@ while(gamestate):
enemy.move(-5)
enemy.shoot()
player.firecontrol(screen)
player.render(screen)
enemy.render(screen)