diff --git a/GameObject.py b/GameObject.py
index ebd006f..878fdac 100644
--- a/GameObject.py
+++ b/GameObject.py
@@ -1,5 +1,5 @@
import pygame
-
+import interface
#Statics
spawned_enemys = list()
@@ -25,7 +25,7 @@ class GameObject(object):
def render(self, screen:pygame.Surface):
if(self.image is not None):
- self.rect = screen.blit(self.image, (self.pos_x, self.pos_y))
+ self.rect = screen.blit(self.image, (self.pos_x, self.pos_y, self.width, self.height))
else:
self.rect = pygame.draw.rect(screen, (255,0,0), (self.pos_x, self.pos_y, self.width, self.height))
return
@@ -47,7 +47,8 @@ class Player(GameObject):
self._health = 100
self.lifes = 2
self.kills = 0
- self._healthbar = pygame.rect.Rect((15, self.screen.get_size()[1]-50, 100, 20))
+ #self._healthbar = pygame.rect.Rect((15, self.screen.get_size()[1]-50, 100, 20))
+ self.healthbar = interface.Healthbar(screen, "Player1", 25, screen.get_size()[1]-80, 300, 10, self.get_health())
def handle_input(self, event:pygame.event.EventType):
if(event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT):
@@ -90,6 +91,10 @@ class Player(GameObject):
if(direction == "right"):
self.pos_x += self._speed
+ def update_interface(self):
+ self.healthbar.update(self._health)
+ self.healthbar.render(self.screen)
+
def fire(self, screen):
projectile_width = 6
projectile_height = 10
@@ -110,6 +115,7 @@ class Player(GameObject):
def get_health(self):
return self._health
+
class Player2(Player):
def __init__(self, name, screen, pos_x, pos_y, width, height, image=None) -> None:
@@ -210,6 +216,7 @@ class Weapons(GameObject):
self.duration = duration
self.sprite = ""
self.mountingpos = list()
+ self.soundfile = ""
def fire(self):
print(F"Feuere: {self.name}")
diff --git a/Utils.py b/Utils.py
index c3abcbf..bb9c4fa 100644
--- a/Utils.py
+++ b/Utils.py
@@ -17,6 +17,6 @@ def load_image(filename, colorkey=None):
if colorkey is not None:
if colorkey is -1:
colorkey = image.get_at((0,0))
- image.set_colorkey(colorkey, pygame.RLEACCEL)
+ image.set_colorkey(colorkey)
return image
\ No newline at end of file
diff --git a/game.py b/game.py
index a468cb2..aa49492 100644
--- a/game.py
+++ b/game.py
@@ -46,6 +46,10 @@ def item_handler(screen:pygame.Surface):
item.move(0, item.speed)
item.render(screen)
+def handle_playerinput(players):
+ for player in players():
+ pass
+
def spawn_item_random(screen:pygame.Surface):
items_spawned.append(copy.deepcopy(items[0]))
diff --git a/sprites/Zeichnung.svg b/sprites/Zeichnung.svg
new file mode 100644
index 0000000..21debaf
--- /dev/null
+++ b/sprites/Zeichnung.svg
@@ -0,0 +1,56 @@
+
+
+
+
diff --git a/sprites/backgorund1.svg b/sprites/backgorund1.svg
new file mode 100644
index 0000000..86e922f
--- /dev/null
+++ b/sprites/backgorund1.svg
@@ -0,0 +1,56 @@
+
+
+
+
diff --git a/sprites/just_fun.svg b/sprites/just_fun.svg
new file mode 100644
index 0000000..2b8ba98
--- /dev/null
+++ b/sprites/just_fun.svg
@@ -0,0 +1,411 @@
+
+
+
+
diff --git a/sprites/spaceship_1.png b/sprites/spaceship_1.png
new file mode 100644
index 0000000..f84c0e0
Binary files /dev/null and b/sprites/spaceship_1.png differ
diff --git a/sprites/spaceship_1.svg b/sprites/spaceship_1.svg
new file mode 100644
index 0000000..d6f31e3
--- /dev/null
+++ b/sprites/spaceship_1.svg
@@ -0,0 +1,406 @@
+
+
+
+
diff --git a/sprites/spaceship_1_transp.png b/sprites/spaceship_1_transp.png
new file mode 100644
index 0000000..6055955
Binary files /dev/null and b/sprites/spaceship_1_transp.png differ
diff --git a/test.py b/test.py
index 0170417..4c6ff02 100644
--- a/test.py
+++ b/test.py
@@ -35,6 +35,7 @@ log.writeln("Loading images...")
image_enemy = Utils.load_image("Rastergrafik.png")
testimage = Utils.load_image("Rastergrafik.png")
+spaceship = Utils.load_image("sprites/spaceship_1_transp.png", (255,0,255))
log.writeln("Setup fonts...")
font1 = pygame.font.Font("/usr/share/fonts/TTF/Inconsolata-UltraExpandedExtraBold.ttf", 30)
@@ -47,10 +48,14 @@ log.writeln(F"Git-Hash: {short_hash}")
#testimage.set_colorkey((255,0,255), pygame.RLEACCELOK)
-player1 = GameObject.Player("Player", screen,(screen.get_size()[0]/2)-17, screen.get_size()[1]-100, 35, 35, testimage)
-player2 = GameObject.Player2("Player2", screen,(screen.get_size()[0]/2)-17, screen.get_size()[1]-100, 35, 35, testimage)
+players = [
+ GameObject.Player("Player", screen,(screen.get_size()[0]/2)-17, screen.get_size()[1]-175, 60, 60, spaceship),
+ #GameObject.Player2("Player2", screen,(screen.get_size()[0]/2)-17, screen.get_size()[1]-175, 60, 60, spaceship)
+]
+
+player1 = GameObject.Player("Player", screen,(screen.get_size()[0]/2)-17, screen.get_size()[1]-175, 60, 60, spaceship)
+player2 = GameObject.Player2("Player2", screen,(screen.get_size()[0]/2)-17, screen.get_size()[1]-175, 60, 60, spaceship)
-healthbar1 = interface.Healthbar(screen, "Player1", 25, screen.get_size()[1]-80, 300, 10, player1.get_health())
game.loadlevels()
@@ -97,25 +102,26 @@ while(gamestate):
#Push F9 for window-mode
if(event.type == pygame.KEYDOWN and event.key == pygame.K_F9):
pygame.display.set_mode((RENDERING_SIZE))
- player1.handle_input(event)
- player2.handle_input(event)
+
+ for player in players:
+ player:GameObject.Player
+ player.handle_input(event)
+
+ for player in players:
+ player:GameObject.Player
+ if(player.keymap["left"] == True and player.pos_x > 0):
+ player.move("left")
+ #print("links")
+ if(player.keymap["right"] == True and player.pos_x <= (screen.get_size()[0]-player.width)):
+ player.move("right")
+
+ player.update_interface()
+ player.render(screen)
+
- if(player1.keymap["left"] == True and player1.pos_x > 0):
- player1.move("left")
- #print("links")
- 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 and player2.pos_x > 0):
- player2.move("left")
- #print("links")
- if(player2.keymap["right"] == True and player2.pos_x <= (screen.get_size()[0]-player2.width)):
- player2.move("right")
- #print("rechts")
game.run(screen)
- healthbar1.update(player1.get_health())
- healthbar1.render(screen)
+
player1.firecontrol(screen)
player2.firecontrol(screen)
@@ -129,12 +135,7 @@ 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
if(projectile.name == "Player" or projectile.name == "Player2"):
player1.points += 10
@@ -153,25 +154,18 @@ while(gamestate):
#TODO Buggy pygame colliderect is true until projectile passed the hole playrect
# Life decrease only once!
- if(pygame.Rect.colliderect(projectile.rect, player1.rect)):
- #print("Game-Over")
- player1.get_damage(enemy.get_weapon().damage)
- 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")
- player1.get_damage(enemy.get_weapon().damage)
- try:
- index = GameObject.Projectile.shots.index(projectiles)
- del GameObject.Projectile.shots[index]
- except:
- print("Error on indexing projectile")
- #TODO Add Gameover event
-
+ for player in players:
+ player:GameObject.Player
+ if(pygame.Rect.colliderect(projectile.rect, player.rect)):
+ #print("Game-Over")
+ player.get_damage(enemy.get_weapon().damage)
+ 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
if((projectile.pos_y > screen.get_size()[1]) or (projectile.pos_y < 0)):
#print(F"Lösche: {projectile}")
@@ -181,11 +175,8 @@ while(gamestate):
milliseconds = pygame.time.get_ticks()
seconds = milliseconds / 1000
now = time.time_ns()
-
- player1.render(screen)
- player2.render(screen)
-
rand = random.randint(0, 100)
+
for enemy in spawned_enemys:
enemy:GameObject.Enemy
if rand == 20: