-
Notifications
You must be signed in to change notification settings - Fork 0
/
particle_system.py
49 lines (40 loc) · 1.46 KB
/
particle_system.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
import pygame, random
class ParticleSystem:
RED = (255, 0, 0)
GOLD = (255, 215, 0)
def __init__(self, screen):
self.screen = screen
self.particles = []
self.blast_radius = 35
self.particle_number = 25
self.directions = []
self.particle_sizes = []
def explode(self,trigger, x, y, colour):
if colour == self.GOLD:
self.blast_radius = 70
self.particle_number = 80
elif colour == self.RED:
self.blast_radius = 35
self.particle_number = 25
if trigger:
self.particles = [
(random.randint(x - self.blast_radius, x + self.blast_radius),
random.randint(y - self.blast_radius, y + self.blast_radius))
for i in range(self.particle_number)
]
self.directions = [
(random.randrange(-1, 1),
random.randrange(-1, 1))
for i in range(self.particle_number)
]
self.sizes = [
(random.randrange(1, 10),
random.randrange(1, 10))
for i in range(self.particle_number)
]
for i, xy in enumerate(self.particles):
pygame.draw.rect(self.screen, colour, ((xy, self.sizes[i])))
self.particles = [
(xy[0] - d[0], xy[1] - d[1])
for xy, d in zip(self.particles, self.directions)
]