Пример #1
0
    def draw_debug_view(self):
        # Draw circle indicating range
        indices, verts, colors = Shapes.make_circle(center=self.pos,
                                                    radius=self.radius / 2.0)
        # Overwrite degenerate first point
        verts[1][0:1] = verts[1][-2:-1]
        n_points = len(verts[1]) // 2
        pyglet.gl.glLineWidth(1)
        pyglet.graphics.draw(n_points, pyglet.gl.GL_LINE_LOOP, verts, colors)

        # Draw label showing # neighbours
        label_pos = (self.pos[0], self.pos[1] + 3 * self.size + 0.015)
        n_label = Shapes.make_label(str(self._neighbourhood_size),
                                    label_pos,
                                    size=14)
        n_label.draw()
Пример #2
0
    def draw(self):

        # Draw selection circle around selected entity
        if self._cur_selected is not None:
            r = (self._cur_selected.size * 1.2) + 0.005
            indices, verts, colors = Shapes.make_circle(
                center=self._cur_selected.pos, radius=r)
            # Overwrite degenerate first point
            verts = verts[1]
            verts[0:1] = verts[-2:-1]
            self._selection_ring.vertices = verts
            self._selection_ring.colors = colors[1]
            pyglet.gl.glLineWidth(1)
            self._selection_ring.draw(pyglet.gl.GL_LINE_LOOP)

        # Draw UI
        self._ui.draw()
Пример #3
0
    def __init__(self, sim, keyboard=None):
        self.sim = sim
        self.keyboard = keyboard

        # Setup
        persistence.create_data_folder()

        # Controller parameters
        self.mode = ModeEnum.SELECT
        self.ticks_per_secs = 50.0
        self.creatable_types = get_creatable_types()
        self.cur_creation_index = 0

        self._cur_selected = None
        self._ui = controller_ui.ControllerUI()

        # Graphics
        self._selection_ring = Shapes.make_circle(as_vertexlist=True)
Пример #4
0
    def draw(self, batch=None):

        indices, verts, colors = Shapes.make_circle(
            center=self.pos, radius=self.size, color=self.determine_color())

        if batch is None:
            # Just draw the shape immediately
            n = len(verts[1]) // 2
            pyglet.graphics.draw(n, pyglet.gl.GL_POLYGON, verts, colors)
        else:
            # Add indexed vertices to batch
            n = len(verts[1]) // 2
            batch.add_indexed(n, pyglet.gl.GL_TRIANGLES, None, indices, verts,
                              colors)

        if self.debug_view:
            self.draw_force_lines()
        if self.draw_trail_points:
            self.draw_trail()
Пример #5
0
    def draw(self, batch=None):

        color = self.colors_heatmap()  #(40, 10, 120)
        indices, verts, colors = Shapes.make_circle(n_points=20,
                                                    center=self.pos,
                                                    radius=self.size,
                                                    color=color)

        if batch is None:
            # Draw directly
            n = len(verts[1]) // 2
            pyglet.graphics.draw(n, pyglet.gl.GL_POLYGON, verts, colors)
        else:
            # Add indexed vertices to batch
            n = len(verts[1]) // 2
            batch.add_indexed(n, pyglet.gl.GL_TRIANGLES, None, indices, verts,
                              colors)

        # Debug view
        if self.debug_view:
            self.draw_debug_view()