/
main.py
91 lines (71 loc) · 2.52 KB
/
main.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
import pygame
import time
from key_monitor import KeyMonitor
from screen_vars import ScreenVars
from game import Game
from witch import Witch
from zombie import Zombie
from monster import Monster
from skeleton import Skeleton
import pprint
pygame.init()
FRAME_TIME = 50 #50ms is 20 frames per second
if __name__ == '__main__':
print("Starting Pumpkin Hero...")
screen_vars = ScreenVars()
screen = pygame.display.set_mode((screen_vars.get_width(), screen_vars.get_height()))
black = (0,0,0)
witch = Witch(50,0,75,75)
zombie = Zombie(250,0,75,75)
monster = Monster(450,0,75,75)
skeleton = Skeleton(650,0,75,75)
done = False
last_time = time.time()*1000.0
SPEED = 5
game = Game()
key_monitor = KeyMonitor()
#Message pump
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
elif event.type == pygame.KEYDOWN and event.key == pygame.K_q:
done = True
elif event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE and game.started()==False:
#Reset all the pieces
witch.kill()
zombie.kill()
monster.kill()
skeleton.kill()
game.start()
last_time = time.time()*1000
elif event.type == pygame.KEYDOWN:
#print(event.key)
key_monitor.key_down(event)
elif event.type == pygame.KEYUP:
key_monitor.key_up(event)
# Game loop
if game.started() and (time.time()*1000.0)-last_time > FRAME_TIME:
last_time = time.time()*1000.0
game.tick()
key_monitor.tick()
witch.update()
zombie.update()
monster.update()
skeleton.update()
witch.move(SPEED)
zombie.move(SPEED)
monster.move(SPEED)
skeleton.move(SPEED)
screen.fill(black)
game.check_piece([witch,zombie,monster,skeleton], key_monitor)
game.draw_background(screen)
screen.blit(witch.get_image(), witch.get_rect())
screen.blit(zombie.get_image(), zombie.get_rect())
screen.blit(monster.get_image(), monster.get_rect())
screen.blit(skeleton.get_image(), skeleton.get_rect())
pygame.display.flip()
elif not game.started():
screen.fill(black)
game.draw_score(screen)
pygame.display.flip()