View difference between Paste ID: P8VMeFsG and vKg1rbzb
SHOW: | | - or go back to the newest paste.
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-
    ticks = 1
39+
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-
        ticks += 1
56+
57
if __name__ == "__main__":
58
    main()