def over_button(self, x, y): mouse = self.player.mouse glX, glY = mouse.glX, mouse.glY x1 = x + self.x y1 = y + self.y - self.height x2 = x + self.width + self.x y2 = y + self.buttonHeight + self.y - self.height return collides(glX, glY, glX, glY, x1, y1, x2, y2)
def is_over(self): buttonSize = self.scrollHeight * self.scrollSize y = (self.height - self.buttonHeight - (self.position * (self.scrollHeight - buttonSize)) - buttonSize) x1 = self.x y1 = y + self.y - self.height x2 = self.width + self.x y2 = y + buttonSize + self.y - self.height mouse = self.player.mouse glX, glY = mouse.glX, mouse.glY return collides(glX, glY, glX, glY, x1, y1, x2, y2)
def update_over(self): mouse = self.player.mouse glX, glY = mouse.glX, mouse.glY over = None for index, item in enumerate(self.lines): if item.label is None: continue line = item.label x1 = self.borderPad + self.x y1 = line.y - line.height + self.y - self.height + self.yOffset x2 = self.borderPad + line.width + self.x y2 = line.y + self.y - self.height + self.yOffset if collides(glX, glY, glX, glY, x1, y1, x2, y2): over = index break self.over = over
def execute(self): layer = self.evaluate_expression(self.get_parameter(0)) - 1 x = self.evaluate_expression(self.get_parameter(1)) y = self.evaluate_expression(self.get_parameter(2)) fineDetection = bool(self.evaluate_expression(self.get_parameter(3))) if fineDetection: collision = Point(x, y) for instance in self.player.frame.pastedInstances[:]: if instance.layerIndex != layer: continue if fineDetection: collided = collide(instance.objectPlayer.collision, collision) else: collided = collides(x, y, x + 1, y + 1, instance.x1, instance.y1, instance.x2, instance.y2) if collided: instance.destroy()
def in_zone(self, x1, y1, x2, y2): return collides(self.x, self.y, self.x + 1, self.y + 1, x1, y1, x2, y2)