Some changes..
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
|
||||
5
test.py
5
test.py
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user