-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconstants.py
110 lines (95 loc) · 3.23 KB
/
constants.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
102
103
104
105
106
107
108
109
# SCALING AND FPS
import pygame
import pygame_menu
pygame.font.init()
FULL_SCALE = 0
SCALE = 1
FPS = 60
# DISPLAY INFORMATION
# Noch anpassen, damit 1080p ganzzalig dadurch Teilbar ist
# was aber auch wieder änderungen an der Anzahl Grass-Tiles
# bedeutet
NATIVE_WIDTH = 816
NATIVE_HEIGHT = 612
NATIVE_SIZE = (NATIVE_WIDTH, NATIVE_HEIGHT)
NATIVE_WIDTH_CENTER = NATIVE_WIDTH // 2
NATIVE_HEIGHT_CENTER = NATIVE_HEIGHT // 2
NATIVE_CENTER = (NATIVE_WIDTH_CENTER, NATIVE_HEIGHT_CENTER)
NATIVE_TOP = 0
NATIVE_RIGHT = NATIVE_WIDTH
NATIVE_BOTTOM = NATIVE_HEIGHT
NATIVE_LEFT = 0
NATIVE_TOP_LEFT = (NATIVE_LEFT, NATIVE_TOP)
NATIVE_TOP_CENTER = (NATIVE_WIDTH_CENTER, NATIVE_TOP)
NATIVE_TOP_RIGHT = (NATIVE_WIDTH, NATIVE_TOP)
NATIVE_RIGHT_CENTER = (NATIVE_WIDTH, NATIVE_HEIGHT_CENTER)
NATIVE_BOTTOM_RIGHT = NATIVE_SIZE
NATIVE_BOTTOM_CENTER = (NATIVE_WIDTH_CENTER, NATIVE_BOTTOM)
NATIVE_BOTTOM_LEFT = (NATIVE_LEFT, NATIVE_BOTTOM)
NATIVE_LEFT_CENTER = (NATIVE_LEFT, NATIVE_HEIGHT_CENTER)
# If we scale the display we would do the same as above but
# with a scaling factor, e.g.:
# DISPLAY_WIDTH = NATIVE_WIDTH * SCALE etc.
DISPLAY_WIDTH = 816 * SCALE
DISPLAY_HEIGHT = 612 * SCALE
DISPLAY_SIZE = (DISPLAY_WIDTH, DISPLAY_HEIGHT)
DISPLAY_WIDTH_CENTER = DISPLAY_WIDTH // 2
DISPLAY_HEIGHT_CENTER = DISPLAY_HEIGHT // 2
DISPLAY_CENTER = (DISPLAY_WIDTH_CENTER, DISPLAY_HEIGHT_CENTER)
DISPLAY_TOP = 0
DISPLAY_RIGHT = DISPLAY_WIDTH
DISPLAY_BOTTOM = DISPLAY_HEIGHT
DISPLAY_LEFT = 0
DISPLAY_TOP_LEFT = (DISPLAY_LEFT, DISPLAY_TOP)
DISPLAY_TOP_CENTER = (DISPLAY_WIDTH_CENTER, DISPLAY_TOP)
DISPLAY_TOP_RIGHT = (DISPLAY_WIDTH, DISPLAY_TOP)
DISPLAY_RIGHT_CENTER = (DISPLAY_WIDTH, DISPLAY_HEIGHT_CENTER)
DISPLAY_BOTTOM_RIGHT = DISPLAY_SIZE
DISPLAY_BOTTOM_CENTER = (DISPLAY_WIDTH_CENTER, DISPLAY_BOTTOM)
DISPLAY_BOTTOM_LEFT = (DISPLAY_LEFT, DISPLAY_BOTTOM)
DISPLAY_LEFT_CENTER = (DISPLAY_LEFT, DISPLAY_HEIGHT_CENTER)
# GAME STATE INFORMATION
STATE_SPLASH_SCREEN = "SPLASH_SCREEN"
STATE_MAIN_MENU = "MAIN_MENU"
STATE_PLAY = "PLAY"
STATE_PAUSE = "PAUSE"
STATE_GAME_OVER = "GAME_OVER"
GAME_STATES = [
STATE_SPLASH_SCREEN,
STATE_MAIN_MENU,
STATE_PLAY,
STATE_PAUSE,
STATE_GAME_OVER,
]
STARTING_STATE = GAME_STATES[0]
# TILE INFORMATION
# SMALLE_TILE_SIZE = ...
# MEDIUM_TILE_SIZE = ...
# LARGE_TILE_SIZE = ...
# VELOCITY INFORMATION
SPEED_BACKGROUND = -1 # Because we move from right to left, we need a negative value
SPEED_INCREMENT = 0.25
SLOW_DOWN_FACTOR = 0.75 # Percent to slow down when number of enemies is increased
INITIAL_SPEED_FACTOR = 1.0
VELOCITY_PLAYER_MOVEMENT = 5
# ENEMY INFORMATION
INITIAL_NUM_ENEMIES = 4
DEFAULT_ENEMY_INCREMENT = 1
# DIFFICULTY INFORMATION
TIME_UNTIL_SPEED_INCREASE = 15 # Seconds
TIME_UNTIL_MORE_ENEMIES = 60 # Seconds
# FONT INFORMATION
FONT_8BIT = pygame_menu.font.FONT_8BIT
FONT_COURIER_30 = pygame.font.SysFont("Courier", 30)
# MENU INFORMATION
MENU_FONT = pygame_menu.font.FONT_8BIT
MENU_THEME = pygame_menu.themes.THEME_SOLARIZED.copy()
MENU_THEME.widget_font = MENU_FONT
MENU_WIDTH = DISPLAY_WIDTH * 0.75
MENU_HEIGHT = DISPLAY_HEIGHT * 0.75
MENU_SIZE = (MENU_WIDTH, MENU_HEIGHT)
# DIRECTORY INFORMATION
DIR_FONTS = "fonts"
DIR_IMG = "img" # Image directory needs to stay named 'img' to do the web build
DIR_MUSIC = "music"
DIR_SOUNDS = "sounds"