def update(self): # --- circle movement --- # if self.angle <= 6.25: # self.rect.centerx = self.radius * math.sin(self.angle) + self.center_x # self.rect.centery = self.radius * math.cos(self.angle) + self.center_y # self.angle += self.circle_speed # self.speed_y = math.sin(self.rect.x / 36) * 25 # constant movement self.rect.y += self.speed_y self.rect.x += self.speed_x # --- V MOVEMENT --- # if self.rect.center >= (WIDTH/2, HEIGHT/2): # self.speed_x = -self.speed # if self.rect.x < 0 and self.rect.y > HEIGHT: # self.speed_x = self.speed # self.rect.center = (-self.rect.width, -self.rect.height) # self.color = Colors.random_color(self.color) # self.image.fill(self.color) # --- SQUARE MOVEMENT --- # if self.rect.right == WIDTH: # self.speed_x = 0 # self.speed_y = -self.speed # if self.rect.top == 0: # self.speed_x = -self.speed # self.speed_y = 0 # if self.rect.left == 0: # self.speed_x = 0 # self.speed_y = self.speed # if self.rect.bottom == HEIGHT and self.rect.right != WIDTH: # self.speed_x = self.speed # self.speed_y = 0 # --- BOUNCING --- if self.rect.right >= WIDTH or self.rect.left <= 0: self.speed_x *= -1 self.color = Colors.random_color(self.color) self.image.fill(self.color) if self.rect.bottom >= HEIGHT or self.rect.top <= 0: self.speed_y *= -1 self.color = Colors.random_color(self.color) self.image.fill(self.color)