def draw(self): # draw filled box egi.set_pen_color(self.color) egi.closed_shape(self._pts, filled=True) # draw box border if cfg['BOXLINES_ON']: egi.set_pen_color((.7, .7, .7, 1)) egi.closed_shape(self._pts, filled=False) if self.kind == 'I': egi.set_stroke(1) egi.set_pen_color(name="RED") egi.line(self._pts[0].x + 10, self._pts[0].y - 5, self._pts[0].x + 10, self._pts[0].y - 16) egi.line(self._pts[0].x + 5, self._pts[0].y - 11, self._pts[0].x + 16, self._pts[0].y - 11) if self.kind == 'P': obj_pts = ( Point2D(self._pts[0].x + 5, self._pts[0].y - 5), # top left Point2D(self._pts[0].x + 15, self._pts[0].y - 4), # top right Point2D(self._pts[0].x + 15, self._pts[0].y - 15), # bottom right Point2D(self._pts[0].x + 5, self._pts[0].y - 15) # bottom left ) egi.set_stroke(1) egi.set_pen_color(name="RED") egi.closed_shape(obj_pts, filled=False) # centre circle if cfg['CENTER_ON']: egi.set_pen_color((.3, .3, 1, 1)) egi.circle(self._vc, 5) # box position (simple column,row) (or x,y actually) if self.node: if cfg['LABELS_ON']: if not self.idx_label: info = "%d" % self.idx self.idx_label = pyglet.text.Label(info, color=(0, 0, 0, 255), anchor_x="center", anchor_y="top") info = "(%d,%d)" % (self.pos[0], self.pos[1]) self.pos_label = pyglet.text.Label(info, color=(0, 0, 0, 255), anchor_x="center", anchor_y="bottom") self._reposition_labels() self.idx_label.draw() #self.pos_label.draw() if self.marker: if not self.marker_label or self.marker_label.text != self.marker: self.marker_label = pyglet.text.Label(self.marker, color=(255, 0, 0, 255), bold=True, anchor_x="center", anchor_y="center") self._reposition_labels() self.marker_label.draw()
def drawWaves(self): egi.green_pen() seed = self.world._clock * 2 water = self.water egi.set_stroke(2) egi.set_pen_color(color=rgba(water[0], 0.5)) egi.unclosed_shape( self.createWave(seed=seed, amplitude=7, width=self.size.width, start=Vector2D(self.box.left, self.box.top + 10))) egi.set_pen_color(color=rgba(water[1], 0.5)) self.mainWave = self.createWave(seed=seed / 2, amplitude=3, width=self.size.width, start=Vector2D(self.box.left, self.box.top + 0)) egi.unclosed_shape(self.mainWave) egi.set_pen_color(color=rgba(water[2], 0.5)) egi.unclosed_shape( self.createWave(seed=seed / 3, amplitude=10, width=self.size.width, start=Vector2D(self.box.left, self.box.top + 0)))
def draw_paths(self): if self.path: # copied from the box_world egi.set_stroke(2) # Show open edges route = self.path.route egi.set_pen_color(name='GREEN') for i in self.path.open: egi.circle(self.world.boxes[i]._vc, 10) # show the partial paths considered egi.set_pen_color(name='ORANGE') egi.set_stroke(2) for i, j in route.items(): egi.line_by_pos(self.world.boxes[i]._vc, self.world.boxes[j]._vc) egi.set_stroke(1) # show the final path delivered egi.set_pen_color(name='RED') egi.set_stroke(2) path = self.path.path for i in range(1, len(path)): egi.line_by_pos(self.world.boxes[path[i - 1]]._vc, self.world.boxes[path[i]]._vc) egi.set_stroke(1)
def render(self): self.drawWaves() self.drawWalls() egi.set_stroke(1) if(self.world.drawDebug): for wall in self.walls: egi.line_by_pos(wall.center, wall.center + wall.normal * 100)
def draw(self): if self.mode == "Agent": if self.fsm: self.fsm.update() self.fsm.draw() egi.blue_pen() else: egi.red_pen() egi.set_stroke(4) egi.circle(Point2D(self.my_x, self.my_y), 10)
def render(self): egi.set_stroke(1) self.super.render() if(self.chosenOne and self.world.drawDebug): egi.grey_pen() egi.text_at_pos(self.pos.x, self.pos.y, str(self.sickness)) egi.text_at_pos(self.world.width - 100, self.world.height - 30, str(self._state))
def render(self): self.drawWaves() self.drawWalls() egi.set_stroke(1) if (self.world.drawDebug): for wall in self.walls: egi.line_by_pos(wall.center, wall.center + wall.normal * 100)
def drawWalls(self): tank = '0e59cb' egi.set_pen_color(color=rgba(tank, 0.6)) egi.set_stroke(2) self.tankShape[0].y = self.mainWave[0].y self.tankShape[-1].y = self.mainWave[-1].y egi.unclosed_shape(self.tankShape)
def render(self): egi.set_stroke(1) self.super.render() if (self.chosenOne and self.world.drawDebug): egi.grey_pen() egi.text_at_pos(self.pos.x, self.pos.y, str(self.sickness)) egi.text_at_pos(self.world.width - 100, self.world.height - 30, str(self._state))
def drawWaves(self): egi.green_pen() seed = self.world._clock * 2 water = self.water egi.set_stroke(2) egi.set_pen_color(color=rgba(water[0], 0.5)) egi.unclosed_shape(self.createWave(seed= seed, amplitude = 7, width = self.size.width, start = Vector2D(self.box.left, self.box.top + 10) )) egi.set_pen_color(color=rgba(water[1], 0.5)) self.mainWave = self.createWave(seed= seed/2, amplitude = 3, width = self.size.width, start = Vector2D(self.box.left, self.box.top + 0) ) egi.unclosed_shape(self.mainWave) egi.set_pen_color(color=rgba(water[2], 0.5)) egi.unclosed_shape(self.createWave(seed= seed/3, amplitude = 10, width = self.size.width, start = Vector2D(self.box.left, self.box.top + 0) ))
def draw(self, agent_pos): for box in self.boxes: box.draw() if cfg['EDGES_ON']: egi.set_pen_color(name='LIGHT_BLUE') for node, edges in self.graph.edgelist.items(): # print node, edges for dest in edges: egi.line_by_pos(self.boxes[node]._vc, self.boxes[dest]._vc) if self.path: # put a circle in the visited boxes? if cfg['BOXUSED_ON']: egi.set_pen_color(name="GREEN") for i in self.path.closed: egi.circle(self.boxes[i]._vc, 10) if cfg['TREE_ON']: egi.set_stroke(3) # Show open edges route = self.path.route egi.set_pen_color(name='GREEN') for i in self.path.open_nodes: egi.circle(self.boxes[i]._vc, 10) # show the partial paths considered egi.set_pen_color(name='ORANGE') for i, j in route.items(): egi.line_by_pos(self.boxes[i]._vc, self.boxes[j]._vc) egi.set_stroke(1) if cfg['PATH_ON']: # show the final path delivered egi.set_pen_color(name='RED') egi.set_stroke(2) path = self.path.path for i in range(1, len(path)): egi.line_by_pos(self.boxes[path[i - 1]]._vc, self.boxes[path[i]]._vc) egi.set_stroke(1) if agent_pos: egi.set_stroke(4) egi.set_pen_color(name="BLUE") egi.circle(agent_pos, 10)
def draw(self): for box in self.boxes: box.draw() if cfg['EDGES_ON']: egi.set_pen_color(name='LIGHT_BLUE') for node, edges in self.graph.edgelist.items(): # print node, edges for dest in edges: egi.line_by_pos(self.boxes[node]._vc, self.boxes[dest]._vc) if self.path: # put a circle in the visited boxes? if cfg['BOXUSED_ON']: egi.set_pen_color(name="GREEN") for i in self.path.closed: egi.circle(self.boxes[i]._vc, 10) if cfg['TREE_ON']: egi.set_stroke(3) # Show open edges route = self.path.route egi.set_pen_color(name='GREEN') for i in self.path.open: egi.circle(self.boxes[i]._vc, 10) # show the partial paths considered egi.set_pen_color(name='ORANGE') for i,j in route.items(): egi.line_by_pos(self.boxes[i]._vc, self.boxes[j]._vc) egi.set_stroke(1) if cfg['PATH_ON']: # show the final path delivered egi.set_pen_color(name='RED') egi.set_stroke(2) path = self.path.path for i in range(1,len(path)): egi.line_by_pos(self.boxes[path[i-1]]._vc, self.boxes[path[i]]._vc) egi.set_stroke(1) if(self.follower): egi.set_pen_color(name='GREEN') egi.set_stroke(5) egi.circle(self.follower, 15)
def draw(self): for box in self.boxes: box.draw() if cfg['EDGES_ON']: egi.set_pen_color(name='LIGHT_BLUE') for node, edges in self.graph.edgelist.items(): # print node, edges for dest in edges: egi.line_by_pos(self.boxes[node]._vc, self.boxes[dest]._vc) if self.path: if not self.agent: path_pts = [] for i in range(0,len(self.path.path)): path_pts.append(PointToVector2D(self.boxes[self.path.path[i]]._vc)) self.agent = Agent() self.agent.path.set_pts(path_pts) self.agent.update() self.agent.render() # put a circle in the visited boxes? if cfg['BOXUSED_ON']: egi.set_pen_color(name="GREEN") for i in self.path.closed: egi.circle(self.boxes[i]._vc, 10) if cfg['TREE_ON']: egi.set_stroke(3) # Show open edges route = self.path.route egi.set_pen_color(name='GREEN') for i in self.path.open: egi.circle(self.boxes[i]._vc, 10) # show the partial paths considered egi.set_pen_color(name='ORANGE') for i,j in route.items(): egi.line_by_pos(self.boxes[i]._vc, self.boxes[j]._vc) egi.set_stroke(1) if cfg['PATH_ON']: # show the final path delivered egi.set_pen_color(name='RED') egi.set_stroke(2) path = self.path.path for i in range(1,len(path)): egi.line_by_pos(self.boxes[path[i-1]]._vc, self.boxes[path[i]]._vc) egi.set_stroke(1)
def draw(self): if self.projectile: egi.green_pen() egi.set_stroke(10) egi.circle(self.projectile, 3)
def render(self): egi.white_pen() egi.set_stroke(3) egi.circle(self.pos, self.radius)
def render(self): egi.green_pen() egi.set_stroke(2) egi.circle(self.pos, self.radius, True)
def beforeUpdate(self): egi.set_stroke(1) # we want our debug info to be 1px