def update(self, mouse_pos, unoccupied_rects): self.rect.center = mouse_pos self.is_snapped = False collisions = self.rect.collidelistall(unoccupied_rects) for c in collisions: unoccupied_rect = unoccupied_rects[c] if tools.collidepoint_color(mouse_pos, unoccupied_rect, resources.IMAGES["empty_tile"]): self.rect.center = unoccupied_rect.center self.is_snapped = True
def update(self, dt, mouse_pos, left_click): if self.is_clicked: if self.time_since_click >= self.click_delay: self.action = True self.time_since_click += dt else: self.image = self.idle_image self.rect = self.idle_rect if tools.collidepoint_color(mouse_pos, self.rect, self.image): self.image = self.active_image self.rect = self.active_rect if left_click: self.is_clicked = True self.image = self.clicked_image self.rect = self.clicked_rect print("clicked on button \"{}\"".format(self.text))
def update_towerselectors(self, mouse_pos): for ts in self.towerselectors: if tools.collidepoint_color(mouse_pos, ts.rect, ts.image): return ts.get_towerplacer(mouse_pos) return None