annotate examples/oldalien.py @ 3172:d1b367fc08bc tests-returncode

Use a return code of 1 when the tests fail.
author Thomas Kluyver <takowl@gmail.com>
date Wed, 09 Jan 2013 10:13:57 +0000
parents 5f2fa62e5aec
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1620
5f2fa62e5aec remove svn:executable tags and add setmods script to set executable permissions
Lenard Lindstrom <len-l@telus.net>
parents: 1578
diff changeset
1 #!/usr/bin/env python
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
2
10
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
3 """This is a much simpler version of the aliens.py
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
4 example. It makes a good place for beginners to get
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
5 used to the way pygame works. Gameplay is pretty similar,
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
6 but there are a lot less object types to worry about,
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
7 and it makes no attempt at using the optional pygame
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
8 modules.
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
9 It does provide a good method for using the updaterects
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
10 to only update the changed parts of the screen, instead of
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
11 the entire screen surface. This has large speed benefits
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
12 and should be used whenever the fullscreen isn't being changed."""
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
13
b658346dc41c documentation updated for modules and examples
pygame
parents: 7
diff changeset
14
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
15 #import
300
5696b91aabed new importing
pygame
parents: 217
diff changeset
16 import random, os.path, sys
5696b91aabed new importing
pygame
parents: 217
diff changeset
17 import pygame
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
18 from pygame.locals import *
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
19
175
7a9d787f2316 image module redone
pygame
parents: 55
diff changeset
20 if not pygame.image.get_extended():
1578
c0d170c1e636 all standard modules build with Python 3.1. Optional movie module adapted. setup.py skips unsupported files for Python 3
Lenard Lindstrom <len-l@telus.net>
parents: 1427
diff changeset
21 raise SystemExit("Requires the extended image loading from SDL_image")
175
7a9d787f2316 image module redone
pygame
parents: 55
diff changeset
22
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
23
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
24 #constants
300
5696b91aabed new importing
pygame
parents: 217
diff changeset
25 FRAMES_PER_SEC = 40
5696b91aabed new importing
pygame
parents: 217
diff changeset
26 PLAYER_SPEED = 12
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
27 MAX_SHOTS = 2
300
5696b91aabed new importing
pygame
parents: 217
diff changeset
28 SHOT_SPEED = 10
5696b91aabed new importing
pygame
parents: 217
diff changeset
29 ALIEN_SPEED = 12
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
30 ALIEN_ODDS = 45
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
31 EXPLODE_TIME = 6
31
de760341a17a cdrom module rewritten
pygame
parents: 23
diff changeset
32 SCREENRECT = Rect(0, 0, 640, 480)
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
33
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
34
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
35 #some globals for friendly access
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
36 dirtyrects = [] # list of update_rects
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
37 next_tick = 0 # used for timing
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
38 class Img: pass # container for images
1427
a6e94e964a69 examples can be run from outside the examples directory
Lenard Lindstrom <len-l@telus.net>
parents: 300
diff changeset
39 main_dir = os.path.split(os.path.abspath(__file__))[0] # Program's diretory
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
40
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
41
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
42 #first, we define some utility functions
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
43
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
44 def load_image(file, transparent):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
45 "loads an image, prepares it for play"
1427
a6e94e964a69 examples can be run from outside the examples directory
Lenard Lindstrom <len-l@telus.net>
parents: 300
diff changeset
46 file = os.path.join(main_dir, 'data', file)
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
47 try:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
48 surface = pygame.image.load(file)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
49 except pygame.error:
1578
c0d170c1e636 all standard modules build with Python 3.1. Optional movie module adapted. setup.py skips unsupported files for Python 3
Lenard Lindstrom <len-l@telus.net>
parents: 1427
diff changeset
50 raise SystemExit('Could not load image "%s" %s' %
c0d170c1e636 all standard modules build with Python 3.1. Optional movie module adapted. setup.py skips unsupported files for Python 3
Lenard Lindstrom <len-l@telus.net>
parents: 1427
diff changeset
51 (file, pygame.get_error()))
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
52 if transparent:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
53 corner = surface.get_at((0, 0))
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
54 surface.set_colorkey(corner, RLEACCEL)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
55 return surface.convert()
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
56
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
57
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
58
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
59 # The logic for all the different sprite types
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
60
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
61 class Actor:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
62 "An enhanced sort of sprite class"
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
63 def __init__(self, image):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
64 self.image = image
21
fb3855c0fd7e lots of new stuff and a few breaking changes
pygame
parents: 10
diff changeset
65 self.rect = image.get_rect()
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
66
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
67 def update(self):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
68 "update the sprite state for this frame"
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
69 pass
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
70
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
71 def draw(self, screen):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
72 "draws the sprite into the screen"
55
64efe0eb4a74 blit can optionally accept rect as position arg
pygame
parents: 31
diff changeset
73 r = screen.blit(self.image, self.rect)
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
74 dirtyrects.append(r)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
75
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
76 def erase(self, screen, background):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
77 "gets the sprite off of the screen"
55
64efe0eb4a74 blit can optionally accept rect as position arg
pygame
parents: 31
diff changeset
78 r = screen.blit(background, self.rect, self.rect)
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
79 dirtyrects.append(r)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
80
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
81
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
82 class Player(Actor):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
83 "Cheer for our hero"
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
84 def __init__(self):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
85 Actor.__init__(self, Img.player)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
86 self.alive = 1
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
87 self.reloading = 0
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
88 self.rect.centerx = SCREENRECT.centerx
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
89 self.rect.bottom = SCREENRECT.bottom - 10
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
90
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
91 def move(self, direction):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
92 self.rect = self.rect.move(direction*PLAYER_SPEED, 0).clamp(SCREENRECT)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
93
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
94
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
95 class Alien(Actor):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
96 "Destroy him or suffer"
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
97 def __init__(self):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
98 Actor.__init__(self, Img.alien)
300
5696b91aabed new importing
pygame
parents: 217
diff changeset
99 self.facing = random.choice((-1,1)) * ALIEN_SPEED
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
100 if self.facing < 0:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
101 self.rect.right = SCREENRECT.right
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
102
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
103 def update(self):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
104 global SCREENRECT
217
ecea3acad11d python 1.5.2 compatability
pygame
parents: 175
diff changeset
105 self.rect[0] = self.rect[0] + self.facing
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
106 if not SCREENRECT.contains(self.rect):
217
ecea3acad11d python 1.5.2 compatability
pygame
parents: 175
diff changeset
107 self.facing = -self.facing;
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
108 self.rect.top = self.rect.bottom + 3
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
109 self.rect = self.rect.clamp(SCREENRECT)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
110
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
111
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
112 class Explosion(Actor):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
113 "Beware the fury"
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
114 def __init__(self, actor):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
115 Actor.__init__(self, Img.explosion)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
116 self.life = EXPLODE_TIME
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
117 self.rect.center = actor.rect.center
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
118
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
119 def update(self):
217
ecea3acad11d python 1.5.2 compatability
pygame
parents: 175
diff changeset
120 self.life = self.life - 1
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
121
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
122
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
123 class Shot(Actor):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
124 "The big payload"
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
125 def __init__(self, player):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
126 Actor.__init__(self, Img.shot)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
127 self.rect.centerx = player.rect.centerx
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
128 self.rect.top = player.rect.top - 10
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
129
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
130 def update(self):
217
ecea3acad11d python 1.5.2 compatability
pygame
parents: 175
diff changeset
131 self.rect.top = self.rect.top - SHOT_SPEED
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
132
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
133
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
134
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
135
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
136 def main():
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
137 "Run me for adrenaline"
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
138 global dirtyrects
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
139
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
140 # Initialize SDL components
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
141 pygame.init()
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
142 screen = pygame.display.set_mode(SCREENRECT.size, 0)
300
5696b91aabed new importing
pygame
parents: 217
diff changeset
143 clock = pygame.time.Clock()
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
144
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
145 # Load the Resources
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
146 Img.background = load_image('background.gif', 0)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
147 Img.shot = load_image('shot.gif', 1)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
148 Img.bomb = load_image('bomb.gif', 1)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
149 Img.danger = load_image('danger.gif', 1)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
150 Img.alien = load_image('alien1.gif', 1)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
151 Img.player = load_image('oldplayer.gif', 1)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
152 Img.explosion = load_image('explosion1.gif', 1)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
153
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
154 # Create the background
31
de760341a17a cdrom module rewritten
pygame
parents: 23
diff changeset
155 background = pygame.Surface(SCREENRECT.size)
21
fb3855c0fd7e lots of new stuff and a few breaking changes
pygame
parents: 10
diff changeset
156 for x in range(0, SCREENRECT.width, Img.background.get_width()):
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
157 background.blit(Img.background, (x, 0))
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
158 screen.blit(background, (0,0))
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
159 pygame.display.flip()
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
160
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
161 # Initialize Game Actors
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
162 player = Player()
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
163 aliens = [Alien()]
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
164 shots = []
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
165 explosions = []
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
166
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
167 # Main loop
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
168 while player.alive or explosions:
300
5696b91aabed new importing
pygame
parents: 217
diff changeset
169 clock.tick(FRAMES_PER_SEC)
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
170
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
171 # Gather Events
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
172 pygame.event.pump()
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
173 keystate = pygame.key.get_pressed()
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
174 if keystate[K_ESCAPE] or pygame.event.peek(QUIT):
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
175 break
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
176
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
177 # Clear screen and update actors
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
178 for actor in [player] + aliens + shots + explosions:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
179 actor.erase(screen, background)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
180 actor.update()
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
181
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
182 # Clean Dead Explosions and Bullets
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
183 for e in explosions:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
184 if e.life <= 0:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
185 explosions.remove(e)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
186 for s in shots:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
187 if s.rect.top <= 0:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
188 shots.remove(s)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
189
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
190 # Move the player
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
191 direction = keystate[K_RIGHT] - keystate[K_LEFT]
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
192 player.move(direction)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
193
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
194 # Create new shots
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
195 if not player.reloading and keystate[K_SPACE] and len(shots) < MAX_SHOTS:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
196 shots.append(Shot(player))
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
197 player.reloading = keystate[K_SPACE]
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
198
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
199 # Create new alien
300
5696b91aabed new importing
pygame
parents: 217
diff changeset
200 if not int(random.random() * ALIEN_ODDS):
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
201 aliens.append(Alien())
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
202
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
203 # Detect collisions
217
ecea3acad11d python 1.5.2 compatability
pygame
parents: 175
diff changeset
204 alienrects = []
ecea3acad11d python 1.5.2 compatability
pygame
parents: 175
diff changeset
205 for a in aliens:
ecea3acad11d python 1.5.2 compatability
pygame
parents: 175
diff changeset
206 alienrects.append(a.rect)
ecea3acad11d python 1.5.2 compatability
pygame
parents: 175
diff changeset
207
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
208 hit = player.rect.collidelist(alienrects)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
209 if hit != -1:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
210 alien = aliens[hit]
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
211 explosions.append(Explosion(alien))
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
212 explosions.append(Explosion(player))
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
213 aliens.remove(alien)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
214 player.alive = 0
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
215 for shot in shots:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
216 hit = shot.rect.collidelist(alienrects)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
217 if hit != -1:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
218 alien = aliens[hit]
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
219 explosions.append(Explosion(alien))
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
220 shots.remove(shot)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
221 aliens.remove(alien)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
222 break
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
223
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
224 # Draw everybody
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
225 for actor in [player] + aliens + shots + explosions:
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
226 actor.draw(screen)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
227
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
228 pygame.display.update(dirtyrects)
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
229 dirtyrects = []
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
230
300
5696b91aabed new importing
pygame
parents: 217
diff changeset
231 pygame.time.wait(50)
7
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
232
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
233
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
234 #if python says run, let's run!
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
235 if __name__ == '__main__':
99d32cc487b7 Initial revision
ahvezda
parents:
diff changeset
236 main()
1427
a6e94e964a69 examples can be run from outside the examples directory
Lenard Lindstrom <len-l@telus.net>
parents: 300
diff changeset
237