-
Notifications
You must be signed in to change notification settings - Fork 0
/
settings.py
101 lines (83 loc) · 3.48 KB
/
settings.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
90
91
92
93
94
95
96
97
98
99
100
101
import pygame
class Settings:
"""Class to store all the game settings"""
def __init__(self):
"""Initializing static game settings"""
pygame.init()
pygame.mixer.init()
# Screen parameters
self.screen_width = 1920
self.screen_height = 1080
self.bg_color = (16, 16, 61)
# Sound parameters
self.sound_on = True
# Ship settings
self.ship_limit = 3
# Bullet settings
self.bullets_allowed = 5
# Superbullet settings
self.superbullets_allowed = 1
# Lazer cooldown in milliseconds
self.lazer_cooldown = 1000
# Controlling time between lazer shoots
self.last_lazer_shoot = pygame.time.get_ticks()
# Game speed acceleration
self.speedup_scale = 1.1
# Amount of points is increasing depending on speed acceleration
self.score_scale = 1.5
self.initialize_dynamic_settings()
def initialize_dynamic_settings(self):
"""Initializing settings, that change during the game"""
self.ship_speed_factor = 9.0
self.bullet_speed_factor = 10.0
self.superbullet_speed_factor = 12.0
self.lazer_speed_factor = 10.0
# Score count
self.alien_points_bullet = 50
self.alien_points_superbullet = 25
def increase_speed(self):
"""Increasing speed settings and amount of points"""
self.ship_speed_factor *= self.speedup_scale
self.bullet_speed_factor *= self.speedup_scale
self.superbullet_speed_factor *= self.speedup_scale
self.lazer_speed_factor *= self.speedup_scale
self.alien_points_bullet = int(
self.alien_points_bullet * self.score_scale
) # noqa
self.alien_points_superbullet = int(
self.alien_points_superbullet * self.score_scale
)
def play_sound_effect(self, effect):
"""Initializing sound effects"""
if effect == "shoot_bullet":
self.bullet_sound = pygame.mixer.Sound("sounds/bullet_sound")
self.bullet_sound.set_volume(0.15)
self.bullet_sound.play()
elif effect == "shoot_superbullet":
self.bullet_sound = pygame.mixer.Sound("sounds/superbullet_sound")
self.bullet_sound.set_volume(0.15)
self.bullet_sound.play()
elif effect == "shoot_alien_lazer":
self.bullet_sound = pygame.mixer.Sound("sounds/alien_lazer")
self.bullet_sound.set_volume(0.15)
self.bullet_sound.play()
elif effect == "small_explosion":
self.bullet_sound = pygame.mixer.Sound("sounds/small_explosion")
self.bullet_sound.set_volume(0.15)
self.bullet_sound.play()
elif effect == "big_explosion":
self.bullet_sound = pygame.mixer.Sound("sounds/big_explosion")
self.bullet_sound.set_volume(0.15)
self.bullet_sound.play()
elif effect == "press_button":
self.bullet_sound = pygame.mixer.Sound("sounds/button_pressed")
self.bullet_sound.set_volume(0.15)
self.bullet_sound.play()
elif effect == "new_level":
self.bullet_sound = pygame.mixer.Sound("sounds/new_level")
self.bullet_sound.set_volume(0.15)
self.bullet_sound.play()
elif effect == "ship_hit":
self.bullet_sound = pygame.mixer.Sound("sounds/ship_hit")
self.bullet_sound.set_volume(0.15)
self.bullet_sound.play()