def render(self): egi.set_pen_color(name=self.color) points = self.world.transform_points(self.vehicle_shape, self.position, self.heading, self.side, Vector2D(self.scale, self.scale)) egi.closed_shape(points) #egi.red_pen() #egi.circle(self.position, self.panic_radius) if self.mode == 'Wander1': # Disabled for now local_position = Vector2D(self.wander_distance, 0) world_position = self.world.transform_point( local_position, self.position, self.heading, self.side) egi.green_pen() egi.circle(world_position, self.wander_radius) local_position += self.wander_target world_position = self.world.transform_point( local_position, self.position, self.heading, self.side) egi.red_pen() egi.circle(world_position, 5) elif self.mode == 'Follow path': self.path.render()
def render(self, color=None): ''' Draw the triangle agent with color''' # draw the ship egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) # draw the border egi.blue_pen() egi.closed_shape(self.walls, False) egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * 0.5, 5) #feeler1 # add some handy debug drawing info lines - force and velocity if self.show_info: s = 0.5 # <-- scaling factor # force egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.force * s, 5) # velocity egi.grey_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * s, 5) # net (desired) change egi.white_pen() egi.line_with_arrow(self.pos + self.vel * s, self.pos + (self.force + self.vel) * s, 5) egi.line_with_arrow(self.pos, self.pos + (self.force + self.vel) * s, 5)
def render(self, color=None): # graphics, ''' Draw the triangle agent with color''' # self.graphics = Graphics() # draw the path if it exists and the mode is follow. if self.mode == 'follow_path': self.path.render() pass # draw the ship. egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) # add some handy debug drawing info lines - force and velocity. if self.show_info: s = 0.5 # <-- scaling factor. # force. egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.force * s, 5) # velocity. egi.grey_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * s, 5) # net (desired) change. egi.white_pen() egi.line_with_arrow(self.pos + self.vel * s, self.pos + (self.force + self.vel) * s, 5) egi.line_with_arrow(self.pos, self.pos + (self.force + self.vel) * s, 5)
def render(self, color=None): ''' Draw the triangle agent with color''' # draw the ship egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) #draw hiding spots egi.blue_pen() egi.circle(self.obstacles[0], 25) egi.circle(self.obstacles[1], 50) egi.circle(self.obstacles[2], 75) #draw detection box egi.blue_pen() length = 1.0 * (self.speed() / self.max_speed) * 3.0 #db length dbox = [ Point2D(-1.0, 0.6), Point2D(length, 0.6), #new Point2D(length, 0.0), #new Point2D(length, -0.6), #new Point2D(-1.0, -0.6) ] pts = self.world.transform_points(dbox, self.pos, self.heading, self.side, self.scale) egi.closed_shape(pts, False)
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 render(self, color=None): ''' Draw the triangle agent with color''' egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw wander info if self.mode == 'wander': # calculate the center of the wander circle in front of the agent wnd_pos = Vector2D(self.wander_dist, 0) wnd_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) # draw wander circle egi.green_pen() egi.circle(wnd_pos, self.wander_radius) # draw the wander target (little cirlce on the big circle) egi.red_pen() wnd_pos = (self.wander_target + Vector2D(self.wander_dist, 0)) wld_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) egi.circle(wld_pos, 3) if self.mode == 'follow_path': self.path.render() # draw it! egi.closed_shape(pts)
def render(self, color=None): ''' Draw the triangle agent with color''' egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) if (self.mode == 'hunt'): wnd_pos = Vector2D(self.wander_dist, 0) wld_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) egi.green_pen() egi.circle(wld_pos, self.wander_radius) egi.red_pen() wnd_pos = (self.wander_target + Vector2D(self.wander_dist, 0)) wld_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) egi.circle(wld_pos, 3) # draw it! egi.closed_shape(pts) if self.show_info: s = 0.5 # <-- scaling factor # force egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.force * s, 5) # velocity egi.grey_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * s, 5) # net (desired) change egi.white_pen() egi.line_with_arrow(self.pos + self.vel * s, self.pos + (self.force + self.vel) * s, 5) egi.line_with_arrow(self.pos, self.pos + (self.force + self.vel) * s, 5)
def render(self, color=None): ''' Draw the triangle agent with color''' egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts)
def render(self, color=None): ''' Draw the triangle agent with color''' # draw the ship egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) # draw the border egi.blue_pen() egi.closed_shape(self.walls, False) egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * 0.5, 5) #feeler1 # add some handy debug drawing info lines - force and velocity if self.show_info: s = 0.5 # <-- scaling factor # force egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.force * s, 5) # velocity egi.grey_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * s, 5) # net (desired) change egi.white_pen() egi.line_with_arrow(self.pos+self.vel * s, self.pos+ (self.force+self.vel) * s, 5) egi.line_with_arrow(self.pos, self.pos+ (self.force+self.vel) * s, 5)
def render(self, color=None): # draw the ship egi.set_pen_color(name=self.color) egi.cross(self.pos,10) egi.circle(self.pos,10)
def drawEye(self, color=None): if (self.dead): egi.set_pen_color(self.color) egi.cross(self.renderPosition + self.side * self.body, self.body * 5) else: egi.set_pen_color(rgba('fff', 0.5)) egi.circle(self.renderPosition + self.side * self.body, self.body)
def drawEye(self, color=None): if(self.dead): egi.set_pen_color(self.color) egi.cross(self.renderPosition + self.side * self.body, self.body * 5) else: egi.set_pen_color(rgba('fff', 0.5)) egi.circle(self.renderPosition + self.side * self.body, self.body)
def render(self, color=None): """Displays the Hunter on the screen""" egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) egi.closed_shape(pts) if self.mode == 'follow_path': self.path.render()
def render(self, color=None): ''' Draw the triangle agent with color''' # draw the path if it exists and the mode is follow if self.mode == 'follow_path': self.path.render() # draw the ship egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) # draw wander info? if self.mode == 'wander': ## ... pass #draw neighbour radius cntr_pos = Vector2D() cntrwld_pos = self.world.transform_point(cntr_pos, self.pos, self.heading, self.side) egi.white_pen() egi.circle(cntrwld_pos, self.neighbour_radius) # add some handy debug drawing info lines - force and velocity if self.show_info: s = 0.5 # <-- scaling factor # force egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.force * s, 5) # velocity egi.grey_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * s, 5) # net (desired) change egi.white_pen() egi.line_with_arrow(self.pos + self.vel * s, self.pos + (self.force + self.vel) * s, 5) egi.line_with_arrow(self.pos, self.pos + (self.force + self.vel) * s, 5) if (self.mode == 'wander'): #calculate center of the wander circle in front of agent wnd_pos = Vector2D(self.wander_dist, 0) wld_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) #draw the wander circle egi.green_pen() egi.circle(wld_pos, self.wander_radius) #draw the wander target (little circle on big circle) egi.red_pen() wnd_pos = (self.wander_target + Vector2D(self.wander_dist, 0)) wnd_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) egi.circle(wld_pos, 3)
def render(self, color=None): ''' Draw the triangle agent with color''' if(color == None): egi.set_pen_color(name=self.color) else: egi.set_pen_color(name=color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts)
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, color=None): egi.blue_pen() egi.cross(self.predictedtarget, 5) ''' Draw the triangle agent with color''' # draw the path if it exists and the mode is follow if self.mode == 'follow_path': ## ... self.path.render() pass if self.is_hit: self.visible = False # draw the ship egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) self.is_hit = False # draw wander info? if self.mode == 'wander': wnd_pos = Vector2D(self.wander_dist, 0) wld_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) # draw the wander circle egi.green_pen() egi.circle(wld_pos, self.wander_radius) # draw the wander target (little circle on the big circle) egi.red_pen() wnd_pos = (self.wander_target + Vector2D(self.wander_dist, 0)) wld_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) egi.circle(wld_pos, 3) ## ... pass # add some handy debug drawing info lines - force and velocity if self.show_info: s = 0.5 # <-- scaling factor # force egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.force * s, 5) # velocity egi.grey_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * s, 5) # net (desired) change egi.white_pen() egi.line_with_arrow(self.pos + self.vel * s, self.pos + (self.force + self.vel) * s, 5) egi.line_with_arrow(self.pos, self.pos + (self.force + self.vel) * s, 5)
def render(self): egi.set_pen_color(self.color) frequency = 5 pulse = sin(self.world._clock * frequency) range = 0.2 pulse = 1 + (pulse * range) r = self.boundingRadius * pulse egi.circle(self.pos, r, filled=True)
def render(self, color=None): ''' Draw the triangle agent with color''' if self.BestHidingSpot is not None: egi.white_pen() egi.cross(Vector2D(self.BestHidingSpot.x, self.BestHidingSpot.y), 5) egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts)
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 render(self, color=None): """ Draw the triangle agent with color""" egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) # display each possible hiding location for spot in self.hide_locations: if spot == self.hide_locations[-1]: egi.set_pen_color(name='GREEN') egi.cross(spot, 10)
def idleSteer(self, delta): wanderForce = self.wander(delta) * self.state['wanderInfluence'] flockForce = self.flock(delta) * self.flockingInfluence # obstaclesForce = self.obstacleAvoidance(self.world.solids) percentFromCenterX = (self.pos.x - self.world.center.x) / self.world.width percentFromCenterY = (self.pos.y - self.world.center.y) / self.world.height # Square the falloff valueX = -Util.sign(percentFromCenterX)*(self.maxCenterForce * percentFromCenterX**2) valueY = -Util.sign(percentFromCenterY)*(self.maxCenterForce * percentFromCenterY**2) centerForce = Vector2D(valueX, valueY) survivalSteer = self.survivalSteer(delta) foodForce = self.foodSteer(delta) * (1 + self.sickness / 10) self.maxSpeed = self.stat('speed') - (self.sickness / 2) netForce = wanderForce + flockForce + centerForce + survivalSteer + foodForce # print 'self.flockingInfluence', self.flockingInfluence if(self.chosenOne and self.world.drawDebug): egi.blue_pen() egi.line_by_pos(self.pos, self.pos + wanderForce * 5) egi.green_pen() egi.line_by_pos(self.pos, self.pos + flockForce * 5) egi.orange_pen() egi.line_by_pos(self.pos, self.pos + netForce * 5) egi.set_pen_color(name='BROWN') egi.line_by_pos(self.pos, self.pos + centerForce * 5) return netForce
def render(self, color=None): ''' Draw the triangle agent with color''' # draw the path if it exists and the mode is follow if self.mode == 'follow_path': ## ... self.path.render() # draw the ship egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) # draw wander info? if self.mode == 'wander': ## ... wnd_pos = Vector2D(self.wander_dist, 0) wld_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) egi.green_pen() egi.circle(wld_pos, self.wander_radius) egi.red_pen() wnd_pos = (self.wander_target + Vector2D(self.wander_dist, 0)) wld_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) egi.circle(wld_pos, 3) if self.mode == 'hide': egi.green_pen() egi.cross(self.besthidingspot, 5) # add some handy debug drawing info lines - force and velocity if self.show_info: s = 0.5 # <-- scaling factor # force egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.force * s, 5) # velocity egi.grey_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * s, 5) # net (desired) change egi.white_pen() egi.line_with_arrow(self.pos+self.vel * s, self.pos+ (self.force+self.vel) * s, 5) egi.line_with_arrow(self.pos, self.pos+ (self.force+self.vel) * s, 5)
def drawBody(self, color=None): egi.set_pen_color(color) if(self.world.drawDebug): if(self.isNeighbour): egi.blue_pen() if(self.tagged): egi.green_pen() if(self.chosenOne): if(self.world.drawDebug or self.world.drawComponentForces): egi.white_pen() pts = self.pointsInWorldSpace(self.vehicle_shape, self.renderPosition) # pts = self.world.transform_points(self.vehicle_shape, self.renderPosition, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) self.drawEye(color)
def idleSteer(self, delta): wanderForce = self.wander(delta) * self.state['wanderInfluence'] flockForce = self.flock(delta) * self.flockingInfluence # obstaclesForce = self.obstacleAvoidance(self.world.solids) percentFromCenterX = (self.pos.x - self.world.center.x) / self.world.width percentFromCenterY = (self.pos.y - self.world.center.y) / self.world.height # Square the falloff valueX = -Util.sign(percentFromCenterX) * (self.maxCenterForce * percentFromCenterX**2) valueY = -Util.sign(percentFromCenterY) * (self.maxCenterForce * percentFromCenterY**2) centerForce = Vector2D(valueX, valueY) survivalSteer = self.survivalSteer(delta) foodForce = self.foodSteer(delta) * (1 + self.sickness / 10) self.maxSpeed = self.stat('speed') - (self.sickness / 2) netForce = wanderForce + flockForce + centerForce + survivalSteer + foodForce # print 'self.flockingInfluence', self.flockingInfluence if (self.chosenOne and self.world.drawDebug): egi.blue_pen() egi.line_by_pos(self.pos, self.pos + wanderForce * 5) egi.green_pen() egi.line_by_pos(self.pos, self.pos + flockForce * 5) egi.orange_pen() egi.line_by_pos(self.pos, self.pos + netForce * 5) egi.set_pen_color(name='BROWN') egi.line_by_pos(self.pos, self.pos + centerForce * 5) return netForce
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.agent: self.agent.render()
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 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)
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 render(self, color=None): egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) # add some handy debug drawing info lines - force and velocity if self.show_info: s = 0.5 # <-- scaling factor # force egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.force * s, 5) # velocity egi.grey_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * s, 5) # net (desired) change egi.white_pen() egi.line_with_arrow(self.pos + self.vel * s, self.pos + (self.force + self.vel) * s, 5) egi.line_with_arrow(self.pos, self.pos + (self.force + self.vel) * s, 5)
def render(self, color=None): """Displays the Hunter on the screen""" if self.visible: egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw wander info # if self.mode == 'wander': # # calculate the centre of the wander circle in front of the agent # wnd_pos = Vector2D(self.wander_dist, 0) # wnd_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) # # draw wander circle # egi.green_pen() # egi.circle(wnd_pos, self.wander_radius) # # draw the target (little circle on the big circle) # egi.red_pen() # wnd_pos = (self.wander_target + Vector2D(self.wander_dist, 0)) # wld_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) # egi.circle(wld_pos, 3) # draw it egi.closed_shape(pts)
def render(self, color=None): ''' Draw moving target ''' #calculate target points self.movingTarget() #draw target using those points egi.blue_pen() dbox = [ Point2D(self.x0, self.y0), Point2D(self.x1, self.y0), Point2D(self.x1, self.y1), Point2D(self.x0, self.y1) ] egi.closed_shape(dbox, False) #pos of target self.target_pos = Vector2D(self.x0 + self.target_mid.x, self.y1 + self.target_mid.y) ''' Draw the triangle agent with color''' # draw the ship egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) #draw bullets being fired egi.green_pen() if self.mode == 'rifle' or self.mode == 'rocket' or self.mode == 'handgun' or self.mode == 'grenade': if self.step_count == 0: egi.circle(self.bullet_pos, self.size) self.step_count += 1 elif self.bullet_pos.y > self.target_pos.y: self.step_count = 0 self.bullet_pos = Vector2D(250,250) self.mode = 'aim' else: self.bullet_pos += self.avg egi.circle(self.bullet_pos, self.size) self.step_count += 1
def render(self, color=None): ''' Draw the triangle agent with color''' # draw the ship egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos,self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) #draw some patrol target egi.red_pen() for target in self.world.targets: egi.cross(target, 10) ''' Draw bullets ''' egi.grey_pen() if self.mode == 'fire': self.shoot_enemy() if self.mode == 'reload': self.color = 'YELLOW' self.reload_gun() if self.ammo == 10: self.mode = 'soldier' self.color = 'GREEN'
def render(self, color=None): ''' Draw the triangle agent with color''' egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) # draw wander info? ## ... # calculate the center of the wander circle in front of the agent wnd_pos = Vector2D(self.wander_dist, 0) wld_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) # draw the wander circle egi.green_pen() egi.circle(wld_pos, self.radius) # draw the wander target (little circle on the big circle) egi.red_pen() wnd_pos = (self.wander_target + Vector2D(self.wander_dist, 0)) wld_pos = self.world.transform_point(wnd_pos, self.pos, self.heading, self.side) # egi.circle(self.pos, self.radius) # add some handy debug drawing info lines - force and velocity if self.show_info: s = 0.5 # <-- scaling factor # force egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.force * s, 5) # velocity egi.grey_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * s, 5) # net (desired) change egi.white_pen() egi.line_with_arrow(self.pos+self.vel * s, self.pos+ (self.force+self.vel) * s, 5) egi.line_with_arrow(self.pos, self.pos+ (self.force+self.vel) * s, 5)
def render(self, color=None): ''' Draw the triangle agent with color''' # draw the path if it exists and the mode is follow if self.mode == 'follow_path': ## ... self.path.render() pass egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) if self.mode == 'neighbourhood': if self.tagged == True: self.color = 'BLUE' if self.tagged == False: self.color = 'ORANGE' pass # add some handy debug drawing info lines - force and velocity if self.show_info: s = 0.5 # <-- scaling factor # force egi.red_pen() egi.line_with_arrow(self.pos, self.pos + self.force * s, 5) # velocity egi.grey_pen() egi.line_with_arrow(self.pos, self.pos + self.vel * s, 5) # net (desired) change egi.white_pen() egi.line_with_arrow(self.pos+self.vel * s, self.pos+ (self.force+self.vel) * s, 5) egi.line_with_arrow(self.pos, self.pos+ (self.force+self.vel) * s, 5)
def render(self, color=None): ''' Draw the triangle agent with color''' # draw the ship egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.vehicle_shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts) #draw some patrol target egi.red_pen() for target in self.world.targets: egi.cross(target, 10) ''' Draw bullets ''' egi.grey_pen() if self.mode == 'fire': self.shoot_enemy() if self.mode == 'reload': self.color = 'YELLOW' self.reload_gun() if self.ammo == 10: self.mode = 'soldier' self.color = 'GREEN'
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): # 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) # 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 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) # 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 renderBackground(self): egi.set_pen_color(self.backgroundColor) egi.rect(0, self.height, self.width, 0, filled=True)
def render(self): egi.set_pen_color(name=self.color) pts = self.world.transform_points(self.shape, self.pos, self.heading, self.side, self.scale) # draw it! egi.closed_shape(pts)
def render(self): egi.set_pen_color(self.color) renderShape = self.getRenderShape() egi.closed_shape(renderShape)