Esempio n. 1
0
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')
Esempio n. 2
0
    def __init__(self, filename, **kwargs):
        kwargs.update({
            'width': 500,
            'height': 500,
            'vsync':True,
            'resizable':True,
        })
        super(BoxWorldWindow, self).__init__(**kwargs)

        # create a pyglet window and set glOptions
        glEnable(GL_BLEND)
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
        # needed so that graphs.egi knows where to draw
        egi.InitWithPyglet(self)
        egi.text_color(name='BLACK')

        glClearColor(0.9, 0.9, 0.9, 1.0) # Grey

        #create a world for graph searching
        #filename = kwargs['filename'] #"boxworld2.txt"
        #filename = 'map2.txt'
        self.world = BoxWorld.FromFile(filename, self.get_size())
        self.world.reset_navgraph()
        if not self.world.items_and_points_done:
            self.world.items_and_points()

        # prep the fps display and some labels
        self.fps_display = None # clock.ClockDisplay()
        clBlack = (0,0,0, 255)
        self.labels = {
            'mouse':  Label('', x=5, y=self.height-20, color=clBlack),
            'search': Label('', x=120, y=self.height-20, color=clBlack),
            'status': Label('', x=300, y=self.height-20, color=clBlack),
        }
        self._update_label()

        # add the extra event handlers we need
        self.add_handers()

        # search limit
        self.limit = 0 # unlimited.

        self.agent = False
Esempio n. 3
0
    def __init__(self, filename, **kwargs):
        kwargs.update({
            'width': 500,
            'height': 500,
            'vsync':True,
            'resizable':True,
        })
        super(BoxWorldWindow, self).__init__(**kwargs)

        # create a pyglet window and set glOptions
        glEnable(GL_BLEND)
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
        # needed so that graphs.egi knows where to draw
        egi.InitWithPyglet(self)
        egi.text_color(name='BLACK')

        glClearColor(0.9, 0.9, 0.9, 1.0) # Grey

        #create a world for graph searching
        #filename = kwargs['filename'] #"boxworld2.txt"
        #filename = 'map2.txt'
        self.world = BoxWorld.FromFile(filename, self.get_size())
        self.world.reset_navgraph()

        # prep the fps display and some labels
        self.fps_display = None # clock.ClockDisplay()
        clBlack = (0,0,0, 255)
        self.labels = {
            'mouse':  Label('', x=5, y=self.height-20, color=clBlack),
            'search': Label('', x=120, y=self.height-20, color=clBlack),
            'status': Label('', x=300, y=self.height-20, color=clBlack),
        }
        self._update_label()

        # add the extra event handlers we need
        self.add_handers()

        # search limit
        self.limit = 0 # unlimited.

        clock.schedule_interval(self.world.update, 1.0/20.0)
Esempio n. 4
0
	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