Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/data/graphics/bouncing
blob: b14afc7c1eec941cf41c7e72282ec0a41d42f876 (plain)
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
from pippy.gasp import *    # import everything from pippy.gasp
import math                 # import math

class Mover:
    def __init__(self):
        self.speed = random_between(1,3)
        self.direction = random_between(10,360)
        self.rad = random_between(10,20)
        self.color = (random_between(0,255),random_between(0,255),random_between(0,255))
        self.x = random_between(self.rad,screen_size()[0]-self.rad)
        self.y = random_between(self.rad,screen_size()[1]-self.rad)
        self.shape = Circle((self.x,self.y),self.rad,color = self.color,filled = True)
        self.move_x = math.cos(math.degrees(self.direction))*self.speed
        self.move_y = math.sin(math.degrees(self.direction))*self.speed

    def move(self):
        self.x += self.move_x
        self.y += self.move_y
        self.keep_to_screen()
        move_to(self.shape,(self.x,self.y))

    def keep_to_screen(self):
        if self.x < self.rad or self.x > screen_size()[0]-self.rad:
            self.move_x = self.move_x * -1
        if self.y < self.rad or self.y > screen_size()[1]-self.rad:
            self.move_y = self.move_y * -1

num_movers = random_between(10,30)
movers = []
begin_graphics()
for i in range(num_movers):
    movers.append(Mover())
set_speed(40)
while "enter" not in keys_pressed():
    for mover in movers: mover.move()
    update_when("next_tick")
end_graphics()