Hashi/game_effect.py
2020-12-16 20:47:09 +01:00

52 lines
1.5 KiB
Python

import pygame
import random
import pygame
import random
class Rectangle_effect:
rects = []
timer = 0
def __init__(self, pos, size, speed, dirs):
self.pos = pos
self.size = size
self.speed = speed
self.dirs = dirs # True for going up False for down
def move(self, display, palette):
sur = pygame.Surface(self.size)
sur.fill(palette.palette["backgroundShade"])
sur.set_alpha(random.randint(100, 200))
display.blit(sur, self.pos)
if self.dirs[0]:
self.pos[1] -= self.speed
elif self.dirs[1]:
self.pos[1] += self.speed
elif self.dirs[2]:
self.pos[0] += self.speed
elif self.dirs[3]:
self.pos[0] -= self.speed
if self.pos[1] < -120 or self.pos[0] > 600 or self.pos[1] > 650 or self.pos[0] < -120:
self.delete(self)
@classmethod
def generate_rects(cls, amount=100, speed_range=None):
if speed_range is None:
speed_range = [1, 4]
for _ in range(amount):
dirs = [0, 0, 0, 0]
dirs[random.randint(0, 3)] = 1
cls.rects.append(Rectangle_effect([random.randint(0, 600), random.randint(0, 650)],
[random.randint(40, 120), random.randint(40, 120)],
random.randint(speed_range[0], speed_range[1]),
dirs))
@classmethod
def delete(cls, circle):
cls.rects.remove(circle)