-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExplosionManager.py
More file actions
42 lines (33 loc) · 1.42 KB
/
ExplosionManager.py
File metadata and controls
42 lines (33 loc) · 1.42 KB
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
from pygame.locals import *
from GameSprite import GameSprite
from Objectpool import Objectpool
from Explosion import Explosion
class ExplosionManager(object):
def __init__(self, scene):
self.image = 'Asset/explosion.png'
self.scene = scene
self.width = 640
self.height = 64
self.explosion_count = 10
self.count = 0
self.rect = Rect(0, 0, self.width, self.height)
self.sprite = GameSprite(self.image, self.rect)
self.sprite_surface = self.sprite.getImage() # get the player sprite surface
self.explosion_object_pool = Objectpool(self.explosion_count)
self.explosion_list = []
def create_explosion(self, x, y):
if (self.explosion_object_pool.getSize() > 0):
self.explosion_list.append(self.explosion_object_pool.obtain_missile(x, y))
else:
self.explosion_list.append(Explosion(self.sprite_surface, x, y))
def explosion_update(self):
for item in list(self.explosion_list):
if(item.on == False):
self.explosion_list.remove(item)
self.explosion_object_pool.recycle(item)
else:
item.update()
def draw(self):
# blit the explosion on the scene
for i in range(len(self.explosion_list)):
self.scene.blit(self.explosion_list[i].ex_surface, self.explosion_list[i].ex_pos, self.explosion_list[i].rect)