Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import random
- import pygame as pg
- class Square(object):
- colors = ["red", "orange", "yellow", "green", "blue", "purple"]
- def __init__(self, center_point):
- self.color = random.choice(self.colors)
- size = random.randint(5, 50)
- self.rect = pg.Rect(0, 0, size, size)
- self.rect.center = center_point
- self.speed = random.randint(1, 10)
- self.x_velocity = random.randint(-1, 1)
- self.y_velocity = random.randint(-1, 1)
- def move(self):
- self.rect.move_ip((self.x_velocity * self.speed,
- self.y_velocity * self.speed))
- def update(self, screen_rect, ticks):
- if self.rect.left < 0 or self.rect.right > screen_rect.right:
- self.x_velocity *= -1
- if self.rect.top < 0 or self.rect.bottom > screen_rect.bottom:
- self.y_velocity *= -1
- self.move()
- def draw(self, surface):
- pg.draw.rect(surface, pg.Color(self.color), self.rect)
- def main():
- pg.init()
- screen = pg.display.set_mode((640, 480))
- clock = pg.time.Clock()
- fps = 30
- squares = []
- while True:
- for event in pg.event.get():
- if event.type == pg.QUIT:
- pg.quit()
- sys.exit()
- elif event.type == pg.MOUSEBUTTONDOWN:
- new_square = Square(event.pos)
- squares.append(new_square)
- screen.fill(pg.Color("black"))
- for square in squares:
- square.update(screen.get_rect(), ticks)
- for square in squares:
- square.draw(screen)
- pg.display.update()
- clock.tick(fps)
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement