Advertisement
Guest User

squares.py

a guest
Mar 7th, 2014
656
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import sys
  2. import random
  3. import pygame as pg
  4.  
  5.  
  6. class Square(object):
  7.     colors = ["red", "orange", "yellow", "green", "blue", "purple"]
  8.     def __init__(self, center_point):
  9.         self.color = random.choice(self.colors)
  10.         size = random.randint(5, 50)
  11.         self.rect = pg.Rect(0, 0, size, size)
  12.         self.rect.center = center_point
  13.         self.speed = random.randint(1, 10)
  14.         self.x_velocity = random.randint(-1, 1)
  15.         self.y_velocity = random.randint(-1, 1)
  16.    
  17.     def move(self):
  18.         self.rect.move_ip((self.x_velocity * self.speed,
  19.                                     self.y_velocity * self.speed))
  20.    
  21.     def update(self, screen_rect, ticks):
  22.         if self.rect.left < 0 or self.rect.right > screen_rect.right:
  23.             self.x_velocity *= -1
  24.         if self.rect.top < 0 or self.rect.bottom > screen_rect.bottom:
  25.             self.y_velocity *= -1    
  26.         self.move()
  27.        
  28.     def draw(self, surface):
  29.         pg.draw.rect(surface, pg.Color(self.color), self.rect)    
  30.  
  31.  
  32. def main():
  33.     pg.init()
  34.     screen = pg.display.set_mode((640, 480))
  35.     clock = pg.time.Clock()
  36.     fps = 30
  37.     squares = []
  38.  
  39.     while True:
  40.         for event in pg.event.get():
  41.             if event.type == pg.QUIT:
  42.                 pg.quit()
  43.                 sys.exit()
  44.             elif event.type == pg.MOUSEBUTTONDOWN:
  45.                 new_square = Square(event.pos)
  46.                 squares.append(new_square)
  47.        
  48.         screen.fill(pg.Color("black"))        
  49.         for square in squares:
  50.             square.update(screen.get_rect(), ticks)
  51.         for square in squares:
  52.             square.draw(screen)
  53.         pg.display.update()
  54.         clock.tick(fps)
  55.  
  56.        
  57. if __name__ == "__main__":
  58.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement