Exemplo n.º 1
0
    def _draw_pulse(cls, canvas: tk.Canvas, tower_: SimpleTower):
        """Draws a pulse tower"""

        x, y = tower_.position

        x_diameter, y_diameter = tower_.grid_size
        top_left, bottom_right = tower_.get_bounding_box()

        cell_size = tower_.cell_size

        colour = tower_.colour

        body = canvas.create_oval(top_left,
                                  bottom_right,
                                  tag='tower',
                                  fill=colour)
        tags = [body]

        angle_step = math.pi / 2
        for i in range(4):
            angle = i * angle_step

            dx = (x_diameter / 2) * cell_size * math.cos(angle)
            dy = (y_diameter / 2) * cell_size * math.sin(angle)

            tag = canvas.create_line(x + dx / 2,
                                     y + dy / 2,
                                     x + dx,
                                     y + dy,
                                     tag='tower')

            tags.append(tag)

        return tags
Exemplo n.º 2
0
    def _draw_simple(cls, canvas: tk.Canvas, tower_: SimpleTower):
        """Draws a simple tower"""

        x, y = tower_.position
        angle = tower_.rotation

        x_diameter, y_diameter = tower_.grid_size
        top_left, bottom_right = tower_.get_bounding_box()

        cell_size = tower_.cell_size

        colour = tower_.colour

        return [
            canvas.create_oval(top_left,
                               bottom_right,
                               tag='tower',
                               fill=colour),
            canvas.create_line(
                x,
                y,
                x + (x_diameter / 2) * cell_size * math.cos(angle),
                y + (y_diameter / 2) * cell_size * math.sin(angle),
                tag='tower')
        ]