/
sky_dodge.py
89 lines (73 loc) · 2.49 KB
/
sky_dodge.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 as pg
from pygame.locals import *
from Classes.sound_manager import *
from Classes.group_manager import *
from Classes.event_manager import *
from Classes.player import Player
from Classes.enemy import Enemy
from Classes.cloud import Cloud
from constants import *
pg.init()
pg.font.init()
font = pg.font.SysFont('Comic Sans MS', 60)
clock = pg.time.Clock()
screen = pg.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT])
player = Player()
bg = pg.image.load("images/nebula.jpg").convert()
groups = Groups()
for group in Group:
groups[group] = pg.sprite.Group()
groups[Group.DEFAULT].add(player)
events = Events()
events[Event.ADDENEMY] = pg.USEREVENT + 1
pg.time.set_timer(events[Event.ADDENEMY], 500)
events[Event.ADDCLOUD] = pg.USEREVENT + 2
#pg.time.set_timer(events[Event.ADDCLOUD], 1000)
pg.mixer.music.load("sound/Sky_dodge_theme.ogg")
pg.mixer.music.set_volume(0.01)
pg.mixer.music.play(loops=-1)
sounds = Sounds()
sound_paths = ["sound/Jet_up.ogg", "sound/Jet_down.ogg", "sound/Boom.ogg"]
for x, sound in enumerate(Sound):
sounds[sound] = pg.mixer.Sound(sound_paths[x])
for sound in sounds:
sound.set_volume(0.01)
running = True
while running:
for event in pg.event.get():
if event.type == KEYDOWN:
if event.key == K_ESCAPE:
running = False
elif event.type == QUIT:
running = False
elif event.type == events[Event.ADDENEMY]:
Groups()[Group.ENEMIES].add(Enemy())
#elif event.type == events[Event.ADDCLOUD]:
# Groups()[Group.CLOUDS].add(Cloud())
pressed_keys = pg.key.get_pressed()
player.update(pressed_keys)
groups[Group.ENEMIES].update()
groups[Group.CLOUDS].update()
groups[Group.ROCKETS].update()
screen.blit(bg, [0,0])
for enemy in groups[Group.ENEMIES]:
if pg.sprite.spritecollideany(enemy, groups[Group.ROCKETS]):
enemy.kill()
player.score += 1
for group in groups:
for entity in group:
screen.blit(entity.surf, entity.rect)
screen.blit(player.surf, player.rect)
screen.blit(font.render(f"SCORE: {player.score}", False, (45, 235, 3)), [5, SCREEN_HEIGHT - 90])
if pg.sprite.spritecollideany(player, groups[Group.ENEMIES]):
player.kill()
sounds[Sound.MOVE_UP].stop()
sounds[Sound.MOVE_DOWN].stop()
sounds[Sound.COLLISION].play()
pg.time.delay(500)
running = False
pg.display.flip()
clock.tick(240)
pg.mixer.music.stop()
pg.mixer.quit()
pg.quit()