import random
import penndraw

class Ball:

    def __init__(self):
        self.px = random.random()
        self.py = random.random()
        self.vx = -0.005 + (random.random() * 0.01) # [-0.005, 0.005]
        self.vy = -0.005 + (random.random() * 0.01)    
        self.gravity = -0.0001
        self.radius = 0.02 + random.random() * 0.04 # [0.02, 0.06]
        self.r = random.randint(0, 255)
        self.g = random.randint(0, 255)
        self.b = random.randint(0, 255)

        # speed it up
        self.vx *= 10
        self.vy *= 10
        self.gravity *= 10
    
    def draw(self):
        penndraw.set_pen_color(self.r, self.g, self.b)
        penndraw.filled_circle(self.px, self.py, self.radius)

    def update(self):
        self.px = self.px + self.vx
        self.py = self.py + self.vy
        self.vy = self.vy + self.gravity

        if (self.vy < 0 and self.py - self.radius <= 0):
            self.vy = -0.9 * self.vy

        if ((self.vx < 0 and self.px - self.radius <= 0) or
                (self.vx > 0 and self.px + self.radius >= 1)):
            self.vx = -0.9 * self.vx

