import aStarLibrary.*; AStar grid; boolean [] lightning; Man [] man; float gridScale; int gridWide = 20; int gridHigh = 20; int [] colTable = {#FF0353, #FE03FF, #0503FF, #03FF50, #FFE203}; void setup(){ size(400, 400); smooth(); frameRate(24); rectMode(CENTER); gridScale = width / gridWide; grid = new AStar(); grid.corners = true; grid.offset = new float [] { gridScale * 0.5, gridScale * 0.5}; grid.makeCuboidNodes(new int [] {gridWide, gridHigh}, gridScale); for(int i = 0; i < 40; i++){ Node n = (Node)grid.nodes.get((int)random(grid.nodes.size())); if(n.walkable){ n.walkable = false; } } grid.radialDisconnectUnwalkables(); man = new Man[5]; for(int i = 0; i < man.length; i++){ while(man[i] == null){ Node n = (Node)grid.nodes.get((int)random(grid.nodes.size())); if(n.walkable){ man[i] = new Man(n, i); } } } } void draw(){ background(100, 50, 80); noStroke(); fill(200); for(int i = 0; i < grid.nodes.size(); i++){ Node n = (Node)grid.nodes.get(i); if(!n.walkable){ rect(n.x(), n.y(), gridScale, gridScale); } } for(int i = 0; i < man.length; i++){ man[i].draw(); } } void keyPressed(){ switch(key){ case 'a': man[0].move(-1, 0); break; case 'd': man[0].move(1, 0); break; case 'w': man[0].move(0, -1); break; case 's': man[0].move(0, 1); break; case 'e': man[0].zap(); break; case 'j': man[1].move(-1, 0); break; case 'l': man[1].move(1, 0); break; case 'i': man[1].move(0, -1); break; case 'k': man[1].move(0, 1); break; case 'o': man[1].zap(); break; } }