Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/data/graphics/bouncing
diff options
context:
space:
mode:
Diffstat (limited to 'data/graphics/bouncing')
-rw-r--r--data/graphics/bouncing37
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()