-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtank_game.py
94 lines (74 loc) · 3.77 KB
/
tank_game.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
import pygame
from backgrounds import *
from player import Player
from bullets import Bullets
from enemy_tanks import *
from object import *
from levels import *
from game import *
from music import Music
import json
pygame.init()
FPS = pygame.time.Clock()
HEIGHT = 640
WIDTH = 896
screen = pygame.display.set_mode((WIDTH, HEIGHT))
bullet_group = pygame.sprite.Group()
enemy_group = pygame.sprite.Group()
object_group = pygame.sprite.Group()
player_group = pygame.sprite.Group()
shoot_sound = pygame.mixer.Sound("sounds/shoot.mp3")
shoot_sound.set_volume(0.1)
level = [0]
lev_com = [0]
medals = [[]]
with open('saves.txt', 'r') as f:
contents = json.load(f)
saves = [0]
saves[0] = contents
music = Music()
running = True
while running:
bullet_count = [0]
enemies_killed = [0]
if level[0] == 0: # main menu
background = start_background(screen)
while level[0] == 0:
run_start_menu(screen, background, FPS, level, music)
elif level[0] == 100: # save menu
background = save_background(screen, saves)
while level[0] == 100:
run_save_screen(screen, FPS, level, music, saves, lev_com, medals)
elif level[0] == 1: # one player menu
background = one_player_background(screen, lev_com, medals)
while level[0] == 1:
run_one_player_level_menu(screen, background, FPS, level, lev_com, medals, music)
elif level[0] > 1 and level[0] < 50: # one player levels
background = make_background(screen, level[0])
object_group = get_objects(screen, level[0])
player_tank = Player(screen, "images/tank_blue.png", get_player_pos(level[0]), object_group, 1)
player_group.add(player_tank)
enemy_group.add(enemy_tank(screen, get_enemy_pos(level[0]), player_tank, object_group, level[0], get_enemy_dif(level[0])))
if level[0] != 12: # if not level 11 add a stationary enemy
enemy_group.add(st_enemy_tank(screen, get_stenemy_pos(level[0]), player_tank, object_group, level[0], get_stenemy_dif(level[0])))
if level[0] > 4 and level[0] != 12: # levels 1-3 have only one stationary enemy
enemy_group.add(st_enemy_tank(screen, get_stenemy2_pos(level[0]), player_tank, object_group, level[0], get_stenemy_dif(level[0])))
if level[0] > 8 and level[0] != 12: # levels 4-7 have two stationary enemies and 8-10 have three
enemy_group.add(st_enemy_tank(screen, get_stenemy3_pos(level[0]), player_tank, object_group, level[0], get_stenemy_dif(level[0])))
if level[0] > 6: # 1-5 only have one moving enemy while 6-10 have two
enemy_group.add(enemy_tank(screen, get_enemy2_pos(level[0]), player_tank, object_group, level[0], get_enemy_dif(level[0])))
while level[0] > 1:
run_game(screen, player_group, enemy_group, bullet_group, object_group, background, FPS, level, lev_com, medals, bullet_count, music, enemies_killed, shoot_sound)
elif level[0] == 51: # two player menu
background = two_player_background(screen, medals)
while level[0] == 51:
run_two_player_level_menu(screen, background, FPS, level, medals, music)
elif level[0] > 51 and level[0] < 99: # two player levels
background = make_background(screen, level[0])
object_group = get_objects(screen, level[0])
player_tank = Player(screen, "images/tank_blue.png", get_player_pos(level[0]), object_group, 1)
player2_tank = Player(screen, "images/tank_green.png", get_enemy_pos(level[0]), object_group, 2)
player_group.add(player_tank)
player_group.add(player2_tank)
while level[0] > 51 and level[0] < 99:
run_game(screen, player_group, enemy_group, bullet_group, object_group, background, FPS, level, lev_com, medals, bullet_count, music, enemies_killed, shoot_sound)