def on_touch_up(self, touch): if self.init_pos is None: return self.final_pos = touch.x, touch.y x1, y1 = self.init_pos d = int(utils.distance(self.final_pos, self.init_pos)) mouse_x_y = touch.x, touch.y if d > 20: vertices = utils.constructTriangleFromLine(self.init_pos, mouse_x_y) self.game.renderer.add_triangle(vertices, self.color) self.saved = d elif self.saved is not None: vertices = utils.constructTriangleFromLine( self.init_pos, (self.init_pos[0], self.init_pos[1] - self.saved)) self.game.renderer.add_triangle(vertices, self.color) if self.draw_altitude is not None and self.draw_triangle is not None: self.game.canvas.remove(self.draw_altitude) self.game.canvas.remove(self.draw_triangle) self.draw_altitude = None self.draw_triangle = None self.init_pos = None self.final_pos = None
def on_touch_up(self, touch): if self.init_pos is None: return self.final_pos = touch.x, touch.y x1, y1 = self.init_pos d = int(utils.distance(self.final_pos, self.init_pos)) mouse_x_y = touch.x, touch.y if d>20: vertices = utils.constructTriangleFromLine(self.init_pos, mouse_x_y) self.game.renderer.add_triangle(vertices, self.color) self.saved = d elif self.saved is not None: vertices = utils.constructTriangleFromLine( self.init_pos, (self.init_pos[0], self.init_pos[1]-self.saved)) self.game.renderer.add_triangle(vertices, self.color) if self.draw_altitude is not None and self.draw_triangle is not None: self.game.canvas.remove(self.draw_altitude) self.game.canvas.remove(self.draw_triangle) self.draw_altitude = None self.draw_triangle = None self.init_pos = None self.final_pos = None
def draw(self, x, y): x1, y1 = self.init_pos if self.draw_triangle is not None: mouse_x_y = x, y vertices = utils.constructTriangleFromLine(self.init_pos, mouse_x_y) self.draw_triangle.points = vertices self.draw_altitude.points = [x, y, x1, y1] else: with self.game.canvas: self.color = utils.random_color() Color(*self.color, mode="rgba") self.draw_triangle = Triangle( points=utils.get_triangle_points(x1, y1, x, y)) Color(*utils.random_color(), mode="rgba") self.draw_altitude = \ Line(points=[x1, y1, x, y], width=LINE_WIDTH, cap="square")