-
Notifications
You must be signed in to change notification settings - Fork 1
/
game_functions.py
89 lines (65 loc) · 2.38 KB
/
game_functions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import pygame
import sys
from bullet import Bullet
from character import Character
import character
def check_events(settings, screen, character, bullets):
for event in pygame.event.get():
#Check events
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
key_checkdown_events(event, character, screen, settings, bullets)
if event.type == pygame.KEYUP:
key_checkup_events(event, character)
def update_screen(screen, settings, soils, stones, waters, chests, hearts, doors, character, bullets):
screen.fill(settings.bg_color)
for i in soils:
i.blitme()
for sa in stones:
sa.blitme()
character.blitme()
for s in waters:
s.blitme()
for chess in chests:
chess.blitme()
for heartt in hearts:
heartt.blitme()
for doorr in doors:
doorr.blitme()
for bullet in bullets.sprites():
bullet.draw_bullet()
pygame.display.flip()
def key_checkdown_events(event, character, screen, settings, bullets):
if event.key == pygame.K_d:
character.moving_right = True
if event.key == pygame.K_a:
character.moving_left = True
if event.key == pygame.K_w:
character.moving_up = True
if event.key == pygame.K_s:
character.moving_down = True
if event.key == pygame.K_SPACE and last_move == 'top':
fireBullets(bullets, screen, settings, character)
if event.key == pygame.K_SPACE and last_move == 'top':
fireBullets(bullets, screen, settings, character)
if event.key == pygame.K_ESCAPE:
sys.exit()
def key_checkup_events(event, character):
if event.key == pygame.K_d:
character.moving_right = False
if event.key == pygame.K_a:
character.moving_left = False
if event.key == pygame.K_w:
character.moving_up = False
if event.key == pygame.K_s:
character.moving_down = False
def update_bullets(bullets):
for bullet in bullets:
if bullet.rect.bottom <= 0:
bullets.remove(bullet)
bullets.update()
def fireBullets(bullets, screen, settings, ship):
if len(bullets) < settings.bullets_allowed:
new_bullet = Bullet(screen, settings, ship)
bullets.add(new_bullet)