-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathDuckRehunt.py
108 lines (79 loc) · 2.97 KB
/
DuckRehunt.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
"""
Copyright 2011 Michael Bachmann
This program is distributed under the terms of the GNU
General Public License
"""
import pygame, random
pygame.init()
from DuckLib import *
#from WorldState import *
screen = pygame.display.set_mode((640,480))
screen_dim = screen.get_rect()
##class World():
##
## def __init__(self):
## self.TITLE = 1
## self.
def main():
pygame.display.set_caption("Duck Rehunt: Reckoning")
pygame.mixer.init()
pygame.mixer.Sound("Music.ogg").play(-1)
background = pygame.Surface(screen.get_size())
background.blit(pygame.image.load("Background.gif"), (0,0))
screen.blit(background, (0,0))
foreground = setPiece(pygame.image.load("Foreground.gif"), (0,301), 1 )
hud = setPiece(pygame.image.load("Hud.gif"), (22, 400), 3 )
setSprites = pygame.sprite.LayeredUpdates( foreground , hud)
dSprites.add(Dog())
crosshair = pygame.sprite.Group(Crosshair())
keepGoing = True
pause = 0
delay = 60
shotScore = 0
global score, ducks
scoreFont = pygame.font.Font("duckhunt.ttf",20)
scoreboard = scoreFont.render("%d" % score, 1, (255,255,255))
clock = pygame.time.Clock()
while keepGoing:
clock.tick(60)
pygame.mouse.set_visible(False)
for event in pygame.event.get():
if event.type == pygame.QUIT:
keepGoing = False
elif event.type == pygame.MOUSEBUTTONDOWN:
gunshot.play()
flash.add(Flash())
pointCollide = [sprite for sprite in dSprites.sprites() if sprite.rect.collidepoint(pygame.mouse.get_pos())]
if pointCollide != []:
for sprite in pointCollide:
if not sprite.dog and not sprite.isDead:
sprite.isDead = True
sprite.pause = 0
if sprite.enemy:
shotScore -= 50
else:
shotScore += 5
sprite.setAnim()
shotScore *= len(pointCollide)
score += shotScore
shotScore = 0
scoreboard = scoreFont.render("%d" % score, 1, (255,255,255))
#Garbage collection
pause+= 1
if pause >= delay:
dSprites.remove([sprite for sprite in dSprites.sprites() if sprite.rect.centery >= 500])
dSprites.clear(screen, background)
crosshair.clear(screen, background)
flash.clear(screen, background)
dSprites.update()
crosshair.update()
flash.update()
dSprites.draw(screen)
setSprites.draw(screen)
screen.blit(scoreboard, (540,410))
flash.draw(screen)
crosshair.draw(screen)
pygame.display.flip()
if __name__ == "__main__":
main()
pygame.quit()