diff options
Diffstat (limited to 'data/graphics/bouncing')
-rw-r--r-- | data/graphics/bouncing | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/data/graphics/bouncing b/data/graphics/bouncing new file mode 100644 index 0000000..b14afc7 --- /dev/null +++ b/data/graphics/bouncing @@ -0,0 +1,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() |