def render(self): for agent in self.agents: agent.render() if self.target: egi.red_pen() egi.cross(self.target, 10) for obstacle in self.obstacle: obstacle.render() if self.show_info: infotext = ': '.join(('Radius', str(self.radius))) egi.white_pen() egi.text_at_pos(0, 487, infotext) infotext = ': '.join(('Cohesion', str(self.cohesion))) egi.white_pen() egi.text_at_pos(0, 448, infotext) infotext = ': '.join(('Seperation', str(self.separation))) egi.white_pen() egi.text_at_pos(0, 461, infotext) infotext = ': '.join(('Alignment', str(self.alignment))) egi.white_pen() egi.text_at_pos(0, 474, infotext) infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): if self.hunter is not None: self.hunter.render() for agent in self.agents: agent.render() for hide in self.hideObjects: hide.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.showinfo: # added additional info to info text in regards to emergant group behaviour ##2018-04-16 infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext) infotext = ': '.join(('Cohesion Modifier', str(self.cohesion))) egi.white_pen() egi.text_at_pos(0, 12, infotext) infotext = ': '.join(('Seperation Modifier', str(self.seperation))) egi.white_pen() egi.text_at_pos(0, 24, infotext) infotext = ': '.join(('Alignment Modifier', str(self.alignment))) egi.white_pen() egi.text_at_pos(0, 36, infotext) infotext = ': '.join(('Radius', str(self.radius))) egi.white_pen() egi.text_at_pos(0, 48, infotext)
def render(self): for agent in self.agents: agent.render() if self.show_info: infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
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): 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): for agent in self.agents: agent.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.showinfo: infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): if self.shooter: self.shooter.render() if self.target: self.target.render() if self.bullet: self.bullet.render() if self.show_info: infotext = self.shooter.weapon egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): for agent in self.agents: agent.render() for target in self.targets: target.render() for projectile in self.projectiles: projectile.render() if self.show_info: infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): for agent in self.agents: agent.render() for enemy in self.enemies: enemy.render() for projectile in self.projectiles: projectile.render() if self.show_info: infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): for projectile in self.projectiles: projectile.render() if self.target: self.target.render() if self.attacker: self.attacker.render() if self.show_info: infotext = 'Weapon: ' + self.attacker.weapon egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): self.hunter.render() self.cannon.render() for projectile in self.projectiles: projectile.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.showinfo: infotext = ', '.join( set(projectile.mode for projectile in self.projectiles)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): for agent in self.agents: agent.render() self.hunter.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.showinfo: controltext = 'Cohesion [Q/W]\nSeparation [T\Y]\nAlignment [K/L]\nNeighbourhood Radius [N/M]' infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 15, controltext) egi.text_at_pos(0, 0, infotext)
def render(self): for agent in self.agents: agent.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.show_info: infotext = \ 'Mode: ' + self.agents[0].mode + \ ', Local group radius: ' + str(round(self.agents[0].local_group_radius, 2)) + \ ', Separation: ' + str(round(self.agents[0].separation_multiplier, 2)) + \ ', Cohesion: ' + str(round(self.agents[0].cohesion_multiplier, 2)) + \ ', Alignment: ' + str(round(self.agents[0].alignment_multiplier, 2)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): for agent in self.agents: agent.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.show_info: text = 'Mode: ' + self.agents[0].mode + \ '\nWander: ' + str(round(self.agents[0].wanderAmount, 2)) + \ '\nSeparation: ' + str(round(self.agents[0].separationAmount, 2)) + \ '\nCohesion: ' + str(round(self.agents[0].cohesionAmount, 2)) + \ '\nAlignment ' + str(round(self.agents[0].alignmentAmount, 2)) egi.white_pen() egi.text_at_pos(10, 420, text)
def render(self): for hidingspot in self.hidingspots: egi.blue_pen() egi.cross(hidingspot, 5) for obstacle in self.obstacles: obstacle.render() self.hunter.render() for agent in self.agents: agent.render() if self.show_info: infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): for agent in self.agents: agent.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.hunter: agent.render('GREEN') if self.show_info: infotext = ', '.join(set(agent.mode for agent in self.agents)) infotext += ', ' infotext += ' , '.join( set(agent.attribute for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): self.agent.render() for agent in self.enemies: agent.render() self.targett.render() for bullet in self.bullet: bullet.render() if self.show_info: infotext = ', '.join(set(self.agent.mode)) egi.white_pen() egi.text_at_pos(0, 0, infotext) self.refuelst.render()
def render(self): for agent in self.agents: agent.render() for hunter in self.hunters: hunter.render() for obstacle in self.obstacles: obstacle.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.show_info: infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): for agent in self.agents: if agent is not self.hunter: agent.render() else: agent.render("GREEN") for obs in self.obstacles: obs.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.show_info: infotext = ', '.join(set(agent.mode for agent in self.agents)) infotext += ', ' infotext += ' , '.join( set(agent.attribute for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self,delta): for agent in self.agents: agent.render() for obstacle in self.obstacle: obstacle.render() self.marksman.render() self.hitpoint.render() for bullet in self.bullet: bullet.render() if self.show_info: infotext = ', '.join(set(bullet.mode for bullet in self.bullet)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): for agent in self.agents: if agent is not self.hunter: agent.render() else: agent.render("GREEN") for obs in self.obstacles: obs.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.show_info: infotext = ', '.join(set(agent.mode for agent in self.agents)) infotext += ', ' infotext += ' , '.join(set(agent.attribute for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def render(self): for agent in self.agents: if agent.mode == 'hunt': egi.blue_pen() for spot in agent.hiding_spots: egi.cross(spot, 10) elif agent.mode == 'prey': egi.green_pen() egi.circle(agent.best_spot, 10) agent.render() for obstacle in self.obstacles: obstacle.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.show_info: infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext)
def drawInfo(self): if not self.showInfo: return # Formatting lineHeight = 24 offset = (33, 30) # Loop through and draw each prop i = 0 for key, props in self.info.iteritems(): # draw the key egi.text_color(name='GREY') egi.text_at_pos(offset[0] + 0, (offset[1] + i * lineHeight), key) # draw the label egi.text_color(name='WHITE') if('enabled' in props and props['enabled']): egi.text_color(name='GREEN') egi.text_at_pos(offset[0] + 50, (offset[1] + i * lineHeight), props['label']) i += 1
def render(self): for agent in self.agents: agent.render() if self.target: egi.red_pen() egi.cross(self.target, 10) if self.show_info: botSpeedText = "Bot Speed(q,w): " + str(agent.max_speed) alignFactText = "Alignment Factor(a,s): " + str( agent.AlignmentFactor) cohFactText = "Cohesion Factor(z,x): " + str(agent.CohesionFactor) sepFactText = "Separation Factor(c,v): " + str( agent.SeparationFactor) agent = self.agents[0] infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext) egi.text_at_pos(150, 0, botSpeedText) egi.text_at_pos(150, 13, alignFactText) egi.text_at_pos(150, 26, cohFactText) egi.text_at_pos(150, 39, sepFactText)
def render(self): for agent in self.agents: agent.render() if self.target: egi.red_pen() for obstacle in self.obstacles: egi.circle(obstacle.pos, obstacle.radius, filled=True) if self.show_info: massText = "Mass(q,w): " + str(agent.mass) maxTurnText = "Max Turn Force(a,s): " + str(agent.max_force) maxSpeedText = "Max Speed(z,x): " + str(agent.max_speed) agent = self.agents[0] infotext = ', '.join(set(agent.mode for agent in self.agents)) egi.white_pen() egi.text_at_pos(0, 0, infotext) egi.text_at_pos(150, 0, massText) egi.text_at_pos(150, 13, maxTurnText) egi.text_at_pos(150, 26, maxSpeedText)
world = World(500, 500) # add one agent world.agents.append(Agent(world)) world.prey.append(Target(world)) # unpause the world ready for movement world.paused = False i = 0 while not win.has_exit: win.dispatch_events() glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) # show nice FPS bottom right (default) delta = clock.tick() world.update(delta) world.render() fps_display.draw() egi.text_at_pos(0, 95, "Bullet Type:") egi.text_at_pos(80, 95, str(world.bull_type)) for bull in world.bullets: if bull.tagged is True: world.bullets.remove(bull) elif bull.pos.x >= 900.00 or bull.pos.y >= 900.00: world.bullets.remove(bull) if world.auto_fire is True and world.prey[0].hit is False: world.bullets.append(Weapon(world, world.bull_type)) for t in world.prey: if i < 100: i += 1 else: t.hit = False i = 0 # swap the double buffer
world.agents.append(Agent(world)) world.agents.append(Agent(world)) world.agents.append(Agent(world)) world.agents.append(Agent(world)) world.agents.append(Agent(world)) world.agents.append(Agent(world)) world.agents.append(Agent(world)) world.agents.append(Agent(world)) world.agents.append(Agent(world)) # unpause the world ready for movement world.paused = False while not win.has_exit: win.dispatch_events() glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) # show nice FPS bottom right (default) egi.text_at_pos(0, 50, "Seperation:") egi.text_at_pos(75, 50, str(world.seperation)) egi.text_at_pos(0, 65, "Cohesion:") egi.text_at_pos(75, 65, str(world.cohesion)) egi.text_at_pos(0, 80, "Alignmnet:") egi.text_at_pos(75, 80, str(world.alignmnet)) egi.text_at_pos(0, 95, "radius:") egi.text_at_pos(45, 95, str(world.radius)) delta = clock.tick() world.update(delta) world.render() fps_display.draw() # swap the double buffer win.flip()
def draw_weighting(): weightingtext = '\n'.join(key + ' : ' + str(value) for key, value in BEHAVIOUR_WEIGHTS.items()) egi.white_pen() egi.text_at_pos(0, world.cy-100, weightingtext)
def render_stats(world): egi.text_color((1.0, 1.0, 1.0, 1)) depthy = -40 if not world.inputgroup == 0: if world.inputgroup == 1: egi.text_at_pos(10, depthy, '(Q/W) Game Scale = ' + str(Agent.floatScale)) egi.text_at_pos(10, depthy - 20, '(E/R) Max Speed = ' + str(Agent.max_speed)) egi.text_at_pos(10, depthy - 40, '(A/S) Max Force = ' + str(Agent.max_force)) egi.text_at_pos(10, depthy - 60, '(D/F) Mass = ' + str(Agent.mass)) egi.text_at_pos(10, depthy - 80, '(Z/X) Friction = ' + str(Agent.friction)) egi.text_at_pos(10, depthy - 100, '(C/V) Panic Distance = ' + str(Agent.panicDist)) elif world.inputgroup == 2: egi.text_at_pos( 10, depthy, '(Q/W) Waypoint Threshold = ' + str(Agent.waypoint_threshold)) egi.text_at_pos(10, depthy - 20, '(A) Waypoint Loop = ' + str(Agent.loop)) egi.text_at_pos(10, depthy - 40, '(S) Randomize Path') elif world.inputgroup == 3: egi.text_at_pos( 10, depthy, '(Q/W) Wander Distance = ' + str(Agent.wander_dist)) egi.text_at_pos( 10, depthy - 20, '(E/R) Wander radius = ' + str(Agent.wander_radius)) egi.text_at_pos( 10, depthy - 40, '(A/S) Wander jitter = ' + str(Agent.wander_jitter)) elif world.inputgroup == 4: egi.text_at_pos(10, depthy, '(Q/W) Cohesion Weight = ' + str(Agent.cohesive)) egi.text_at_pos( 10, depthy - 20, '(E/R) Seperation Weight = ' + str(Agent.seperated)) egi.text_at_pos(10, depthy - 40, '(A/S) Alightnment Weight = ' + str(Agent.aligned)) egi.text_at_pos(10, depthy - 60, '(D/F) Wander Weight = ' + str(Agent.GroupWander)) egi.text_at_pos( 10, depthy - 80, '(Z/X) Cohesive Range = ' + str(Agent.cohesiveRange)) egi.text_at_pos( 10, depthy - 100, '(C/V) Seperation Range = ' + str(Agent.seperationRange)) egi.text_at_pos( 10, depthy - 120, '(T/G) Alignment Range = ' + str(Agent.alignmentRange)) if not world.inputgroup == 5: egi.text_at_pos(10, depthy - 150, '(Y) Show agent info') egi.text_at_pos(10, depthy - 170, '(P) Pause') egi.text_at_pos(10, depthy - 190, '(O) Next frame (while paused)') egi.text_at_pos(10, depthy - 230, '(J) Add Agent') egi.text_at_pos(10, depthy - 250, '(K) Add 10 Agents') if not world.inputgroup == 5: egi.text_at_pos(10, depthy - 210, '(H) Flick through menu')