diff --git a/__pycache__/config.cpython-37.pyc b/__pycache__/config.cpython-37.pyc index 936abe0..edb7a48 100644 Binary files a/__pycache__/config.cpython-37.pyc and b/__pycache__/config.cpython-37.pyc differ diff --git a/__pycache__/events.cpython-37.pyc b/__pycache__/events.cpython-37.pyc index 8a7ba71..f7649ad 100644 Binary files a/__pycache__/events.cpython-37.pyc and b/__pycache__/events.cpython-37.pyc differ diff --git a/__pycache__/sprites.cpython-37.pyc b/__pycache__/sprites.cpython-37.pyc index a55588e..8307f7b 100644 Binary files a/__pycache__/sprites.cpython-37.pyc and b/__pycache__/sprites.cpython-37.pyc differ diff --git a/config.py b/config.py index 8725d97..a392767 100644 --- a/config.py +++ b/config.py @@ -24,3 +24,6 @@ P2_RIGHT=pygame.K_RIGHT P2_LEFT=pygame.K_LEFT P2_SHOOT=pygame.K_RCTRL +# bullets +BULLET_SPEED=20 +SHOOT_SPEED=10 diff --git a/events.py b/events.py index 1056e14..433a224 100644 --- a/events.py +++ b/events.py @@ -3,10 +3,16 @@ import pygame from pygame.locals import * from sprites import * - +from config import * running=True players=[] +p1_bullet=[] +p2_bullet=[] + +p1_bullet_group=pygame.sprite.Group() +p2_bullet_group=pygame.sprite.Group() + def events(): global running for event in pygame.event.get(): @@ -36,6 +42,12 @@ def collision_check(p): return False def player1_input(keys): + if keys[P1_SHOOT]: + p1_bullet.append(Bullet('bullet', players[0].pos.x, players[0].pos.y, players[0].facing)) + p1_bullet_group.add(p1_bullet[-1]) + all_sprites.add(p1_bullet[-1]) + p1_bullet[-1].direction=players[0].facing + p1_bullet[-1].shoot() if not (keys[P1_UP] or keys[P1_DOWN] or keys[P1_RIGHT] or keys[P1_LEFT]): players[0].stopmoving() elif not collision_check(0): @@ -49,6 +61,12 @@ def player1_input(keys): players[0].movedown() def player2_input(keys): + if keys[P2_SHOOT]: + p2_bullet.append(Bullet('bullet', players[1].pos.x, players[1].pos.y, players[1].facing)) + p2_bullet_group.add(p1_bullet[-1]) + all_sprites.add(p2_bullet[-1]) + p2_bullet[-1].direction=players[1].facing + p2_bullet[-1].shoot() if not (keys[P2_UP] or keys[P2_DOWN] or keys[P2_RIGHT] or keys[P2_LEFT]): players[1].stopmoving() elif not collision_check(1): diff --git a/mygame.py b/mygame.py index a35a8ff..6e58113 100644 --- a/mygame.py +++ b/mygame.py @@ -20,8 +20,8 @@ clock=pygame.time.Clock() # initialize two players -events.players.append(Player('asd', 400, 100, 5)) -events.players.append(Player('qwe', 400, 500, 5)) +events.players.append(Player('asd', 400, 100, 10)) +events.players.append(Player('qwe', 400, 500, 10)) all_sprites.add(events.players) events.running=True @@ -34,13 +34,16 @@ def draw_debug_text(): text_sprites=pygame.sprite.Group() texts=[ font.render("P1 facing: " + str(events.players[0].facing), True, (100,100,100)), - font.render("P2 facing: " + str(events.players[1].facing), True, (100,100,100)) + font.render("P2 facing: " + str(events.players[1].facing), True, (100,100,100)), + font.render("P1 bullets: " + str(len(events.p1_bullet)), True, (100,100,100)), + font.render("P2 bullets: " + str(len(events.p2_bullet)), True, (100,100,100)) ] count=0 for text in texts: screen.blit(text, (0,count*12)) count+=1 +# set hitbox objects as screen boundaries ### DEBUG ### # game loop while events.running: diff --git a/sprites.py b/sprites.py index 5d97af0..3480b0f 100644 --- a/sprites.py +++ b/sprites.py @@ -1,6 +1,6 @@ # import all files from config import * -import events +#import events # import modules import os, sys import pygame @@ -66,9 +66,6 @@ class Player(pygame.sprite.Sprite): self.facing=3 self.acc.x=-1.5 self.acc.y=0 - - def shoot(self): - nothing def stopmoving(self): self.acc=vec(0, 0) @@ -97,7 +94,29 @@ class Player(pygame.sprite.Sprite): self.move() class Bullet(pygame.sprite.Sprite): - def __init__(self, fname): + def __init__(self, fname, x, y, direction): pygame.sprite.Sprite.__init__(self) self.image, self.rect=load_img(fname + '.png') + self.rect.center=(x, y) + self.speed=vec(0, 0) + self.direction=direction + + def shoot(self): + if self.direction==0: + self.speed.y=-BULLET_SPEED + elif self.direction==1: + self.speed.x=BULLET_SPEED + elif self.direction==2: + self.speed.y=BULLET_SPEED + elif self.direction==3: + self.speed.x=-BULLET_SPEED + self.rect.center+=self.speed + def update(self): + self.shoot() + +class Hitbox(pygame.sprite.Sprite): + def __init__(self, x, y, w, h): + self.size=vec(w, h) + self.rect=self.size.get_rect() + self.rect.center=vec(x,y) \ No newline at end of file