/** Sets up the portrayals and charts for the simulation */ private void setupPortrayals() { PolySchelling world = (PolySchelling) state; // reset the chart info happyReds = new XYSeries("Happy Reds"); happyBlues = new XYSeries("Happy Blues"); happinessChart.removeAllSeries(); happinessChart.addSeries(happyReds, null); happinessChart.addSeries(happyBlues, null); // schedule the chart to take data state.schedule.scheduleRepeating(new HappyTracker()); // reset the histogram info peoplesMoves = new double[((PolySchelling) state).people.size()]; numMovesHisto.removeAllSeries(); numMovesHisto.addSeries(peoplesMoves, 10, "HistoMoves", null); // schedule the histogram to take data state.schedule.scheduleRepeating(new MoveTracker()); // the polygon portrayal polyPortrayal.setField(world.world); polyPortrayal.setPortrayalForAll(new PolyPortrayal()); display.reset(); display.repaint(); }
public void setupPortrayals() { AgentsForage af = (AgentsForage) state; // obstacle portrayal needs no setup foodPortrayal.setField(af.ground); foodPortrayal.setPortrayalForAll( new CircledPortrayal2D( new LabelledPortrayal2D( new OvalPortrayal2D(Color.blue, af.FOOD_DIAMETER, true), af.AGENT_DIAMETER, null, Color.red, true), // 'null' means to display toString() for underlying object, rather than a // predefined label 0, af.FOOD_DIAMETER + 10, Color.DARK_GRAY, true)); agentPortrayal.setField(af.agentgrid); agentPortrayal.setPortrayalForAll( new CircledPortrayal2D( new LabelledPortrayal2D( new OrientedPortrayal2D( new OvalPortrayal2D(af.AGENT_DIAMETER), 0, af.AGENT_DIAMETER), af.AGENT_DIAMETER, null, Color.blue, true), // 'null' means to display toString() for underlying object, rather than a // predefined label 0, af.AGENT_DIAMETER + 10, Color.green, true)); summaryPortrayal.setField(af.summarygrid); // summaryPortrayal.setPortrayalForAll( new // sim.portrayal.simple.RectanglePortrayal2D(Color.green) ); summaryPortrayal.setMap( new sim.util.gui.SimpleColorMap(0, 100, new Color(0, 0, 0, 0), new Color(0, 255, 0, 255))); // reschedule the displayer display.reset(); display2.reset(); // redraw the display display.repaint(); display2.repaint(); }
public void setupPortrayals() { PacMan pacman = (PacMan) state; // Create the agent portrayal agentPortrayal.setField(pacman.agents); // The Pac. Note that you can have multiple pacs, each with different tags, and set it up like // below to display them with different colors. For now we've got it set to one pac. agentPortrayal.setPortrayalForClass( Pac.class, new PacPortrayal(pacman, Color.yellow) { public void draw(Object object, Graphics2D graphics, DrawInfo2D info) { if (((Pac) object).tag == 0) color = Color.yellow; else color = Color.green; super.draw(object, graphics, info); } }); // Blinky is a red ghos unless he's scared, then he's a blue ghost. agentPortrayal.setPortrayalForClass( Blinky.class, new FacetedPortrayal2D( new SimplePortrayal2D[] { new ImagePortrayal2D(this.getClass(), "images/blinkyu.png", 2), new ImagePortrayal2D(this.getClass(), "images/blinkyl.png", 2), new ImagePortrayal2D(this.getClass(), "images/blinkyd.png", 2), new ImagePortrayal2D(this.getClass(), "images/blinkyr.png", 2), new ImagePortrayal2D(this.getClass(), "images/frightened.png", 2), new ImagePortrayal2D(this.getClass(), "images/frightened2.png", 2), })); // Pinky is a pink ghost unless he's scared, then he's a blue ghost. agentPortrayal.setPortrayalForClass( Pinky.class, new FacetedPortrayal2D( new SimplePortrayal2D[] { new ImagePortrayal2D(this.getClass(), "images/pinkyu.png", 2), new ImagePortrayal2D(this.getClass(), "images/pinkyl.png", 2), new ImagePortrayal2D(this.getClass(), "images/pinkyd.png", 2), new ImagePortrayal2D(this.getClass(), "images/pinkyr.png", 2), new ImagePortrayal2D(this.getClass(), "images/frightened.png", 2), new ImagePortrayal2D(this.getClass(), "images/frightened2.png", 2), })); // Inky is a cyan ghost unless he's scared, then he's a blue ghost. agentPortrayal.setPortrayalForClass( Inky.class, new FacetedPortrayal2D( new SimplePortrayal2D[] { new ImagePortrayal2D(this.getClass(), "images/inkyu.png", 2), new ImagePortrayal2D(this.getClass(), "images/inkyl.png", 2), new ImagePortrayal2D(this.getClass(), "images/inkyd.png", 2), new ImagePortrayal2D(this.getClass(), "images/inkyr.png", 2), new ImagePortrayal2D(this.getClass(), "images/frightened.png", 2), new ImagePortrayal2D(this.getClass(), "images/frightened2.png", 2), })); // Clyde is a orange ghost unless he's scared, then he's a ghost rectangle. agentPortrayal.setPortrayalForClass( Clyde.class, new FacetedPortrayal2D( new SimplePortrayal2D[] { new ImagePortrayal2D(this.getClass(), "images/clydeu.png", 2), new ImagePortrayal2D(this.getClass(), "images/clydel.png", 2), new ImagePortrayal2D(this.getClass(), "images/clyded.png", 2), new ImagePortrayal2D(this.getClass(), "images/clyder.png", 2), new ImagePortrayal2D(this.getClass(), "images/frightened.png", 2), new ImagePortrayal2D(this.getClass(), "images/frightened2.png", 2), })); // Create the dot portrayal (also the energizers) dotPortrayal.setField(pacman.dots); // Energizers are big dotPortrayal.setPortrayalForClass(Energizer.class, new OvalPortrayal2D(Color.white, 1)); // dots are small dotPortrayal.setPortrayalForClass(Dot.class, new OvalPortrayal2D(Color.white, 0.4)); // set up the maze portrayal mazePortrayal.setPortrayalForAll(new MazeCellPortrayal(pacman.maze)); mazePortrayal.setField(pacman.maze); // add the RateAdjuster scheduleRepeatingImmediatelyAfter(new RateAdjuster(FRAMES_PER_SECOND)); // reschedule the displayer display.reset(); // redraw the display display.repaint(); }