added shoot interval
This commit is contained in:
parent
8add7a077f
commit
131014dce5
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -26,4 +26,4 @@ P2_SHOOT=pygame.K_RCTRL
|
|||||||
|
|
||||||
# bullets
|
# bullets
|
||||||
BULLET_SPEED=20
|
BULLET_SPEED=20
|
||||||
SHOOT_SPEED=10
|
SHOOT_SPEED=200
|
||||||
|
25
events.py
25
events.py
@ -15,6 +15,12 @@ p2_bullet=[]
|
|||||||
p1_bullet_group=pygame.sprite.Group()
|
p1_bullet_group=pygame.sprite.Group()
|
||||||
p2_bullet_group=pygame.sprite.Group()
|
p2_bullet_group=pygame.sprite.Group()
|
||||||
|
|
||||||
|
clock=pygame.time.Clock()
|
||||||
|
clock.tick()
|
||||||
|
timer1=1000
|
||||||
|
clock2=pygame.time.Clock()
|
||||||
|
clock2.tick()
|
||||||
|
timer2=1000
|
||||||
def events():
|
def events():
|
||||||
global running
|
global running
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
@ -42,6 +48,7 @@ def collision_check(p):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def bullethits():
|
def bullethits():
|
||||||
hits1=pygame.sprite.groupcollide(p2_group, p1_bullet_group, True, True)
|
hits1=pygame.sprite.groupcollide(p2_group, p1_bullet_group, True, True)
|
||||||
hits2=pygame.sprite.groupcollide(p1_group, p2_bullet_group, True, True)
|
hits2=pygame.sprite.groupcollide(p1_group, p2_bullet_group, True, True)
|
||||||
@ -52,11 +59,16 @@ def bullethits():
|
|||||||
|
|
||||||
def player1_input(keys):
|
def player1_input(keys):
|
||||||
if keys[P1_SHOOT]:
|
if keys[P1_SHOOT]:
|
||||||
p1_bullet.append(Bullet('bullet', players[0].pos.x, players[0].pos.y, players[0].facing))
|
global timer1
|
||||||
|
p1_bullet.append(Bullet('bullet', players[0].pos.x, players[0].pos.y, players[0].facing))
|
||||||
|
if timer1>SHOOT_SPEED:
|
||||||
p1_bullet_group.add(p1_bullet[-1])
|
p1_bullet_group.add(p1_bullet[-1])
|
||||||
all_sprites.add(p1_bullet[-1])
|
all_sprites.add(p1_bullet[-1])
|
||||||
p1_bullet[-1].direction=players[0].facing
|
p1_bullet[-1].direction=players[0].facing
|
||||||
p1_bullet[-1].shoot()
|
p1_bullet[-1].shoot()
|
||||||
|
timer1=clock.tick()
|
||||||
|
else:
|
||||||
|
del p1_bullet[-1]
|
||||||
if not (keys[P1_UP] or keys[P1_DOWN] or keys[P1_RIGHT] or keys[P1_LEFT]):
|
if not (keys[P1_UP] or keys[P1_DOWN] or keys[P1_RIGHT] or keys[P1_LEFT]):
|
||||||
players[0].stopmoving()
|
players[0].stopmoving()
|
||||||
elif not collision_check(0):
|
elif not collision_check(0):
|
||||||
@ -71,11 +83,16 @@ def player1_input(keys):
|
|||||||
|
|
||||||
def player2_input(keys):
|
def player2_input(keys):
|
||||||
if keys[P2_SHOOT]:
|
if keys[P2_SHOOT]:
|
||||||
p2_bullet.append(Bullet('bullet', players[1].pos.x, players[1].pos.y, players[1].facing))
|
global timer2
|
||||||
|
p2_bullet.append(Bullet('bullet', players[1].pos.x, players[1].pos.y, players[1].facing))
|
||||||
|
if timer2>SHOOT_SPEED:
|
||||||
p2_bullet_group.add(p2_bullet[-1])
|
p2_bullet_group.add(p2_bullet[-1])
|
||||||
all_sprites.add(p2_bullet[-1])
|
all_sprites.add(p2_bullet[-1])
|
||||||
p2_bullet[-1].direction=players[1].facing
|
p2_bullet[-1].direction=players[1].facing
|
||||||
p2_bullet[-1].shoot()
|
p2_bullet[-1].shoot()
|
||||||
|
timer2=clock.tick()
|
||||||
|
else:
|
||||||
|
del p2_bullet[-1]
|
||||||
if not (keys[P2_UP] or keys[P2_DOWN] or keys[P2_RIGHT] or keys[P2_LEFT]):
|
if not (keys[P2_UP] or keys[P2_DOWN] or keys[P2_RIGHT] or keys[P2_LEFT]):
|
||||||
players[1].stopmoving()
|
players[1].stopmoving()
|
||||||
elif not collision_check(1):
|
elif not collision_check(1):
|
||||||
@ -89,10 +106,14 @@ def player2_input(keys):
|
|||||||
players[1].movedown()
|
players[1].movedown()
|
||||||
|
|
||||||
def event_handler():
|
def event_handler():
|
||||||
|
global timer1
|
||||||
|
global timer2
|
||||||
events()
|
events()
|
||||||
keys=pygame.key.get_pressed()
|
keys=pygame.key.get_pressed()
|
||||||
collision_check(-1)
|
collision_check(-1)
|
||||||
bullethits()
|
bullethits()
|
||||||
|
timer1+=clock.tick()
|
||||||
|
timer2+=clock2.tick()
|
||||||
player1_input(keys)
|
player1_input(keys)
|
||||||
player2_input(keys)
|
player2_input(keys)
|
||||||
|
|
||||||
|
@ -20,6 +20,10 @@ def load_sound(name):
|
|||||||
sound=pygame.mixer.Sound(sound_path)
|
sound=pygame.mixer.Sound(sound_path)
|
||||||
return sound
|
return sound
|
||||||
|
|
||||||
|
# timer
|
||||||
|
|
||||||
|
clock=pygame.time.Clock()
|
||||||
|
|
||||||
# sprite groups
|
# sprite groups
|
||||||
|
|
||||||
all_sprites=pygame.sprite.Group()
|
all_sprites=pygame.sprite.Group()
|
||||||
@ -39,6 +43,7 @@ class Player(pygame.sprite.Sprite):
|
|||||||
self.friction=-0.25
|
self.friction=-0.25
|
||||||
self.facing=0 # where the player is looking (0-north, 1-east, 2-south, 3-west)
|
self.facing=0 # where the player is looking (0-north, 1-east, 2-south, 3-west)
|
||||||
self.colliding=False
|
self.colliding=False
|
||||||
|
|
||||||
def moveup(self):
|
def moveup(self):
|
||||||
if self.facing!=0:
|
if self.facing!=0:
|
||||||
self.image=pygame.transform.rotate(self.image, (self.facing*90))
|
self.image=pygame.transform.rotate(self.image, (self.facing*90))
|
||||||
@ -100,12 +105,13 @@ class Bullet(pygame.sprite.Sprite):
|
|||||||
self.rect.center=(x, y)
|
self.rect.center=(x, y)
|
||||||
self.speed=vec(0, 0)
|
self.speed=vec(0, 0)
|
||||||
self.direction=direction
|
self.direction=direction
|
||||||
|
self.clock=pygame.time.Clock()
|
||||||
|
|
||||||
def shoot(self):
|
def shoot(self):
|
||||||
if self.direction==0:
|
if self.direction==0:
|
||||||
self.speed.y=-BULLET_SPEED
|
self.speed.y=-BULLET_SPEED
|
||||||
elif self.direction==1:
|
elif self.direction==1:
|
||||||
self.speed.x=BULLET_SPEED
|
self.speed.x=BULLET_SPEED
|
||||||
elif self.direction==2:
|
elif self.direction==2:
|
||||||
self.speed.y=BULLET_SPEED
|
self.speed.y=BULLET_SPEED
|
||||||
elif self.direction==3:
|
elif self.direction==3:
|
||||||
|
Loading…
Reference in New Issue
Block a user