/** * SPACE: cykla genom verktygen.
* mouseClick: anvä aktivt verktyg.
* Verktyg:
* Q,A: Höj / sänk marken.
* W,S: Mer/mindre brännbart vegetation.
* F: Starta brand.
* N: Nytt landskap.
*/ ForestFire fire; final int FIRE=0, RAISE_GROUND=1, LOWER_GROUND=2, MORE_FUEL=3, LESS_FUEL=4, NEW_TERRAIN=5; int tool = FIRE; PFont font; //------------------------- void setup(){ size(200,210); font = loadFont("Silkscreen-8.vlw"); textFont( font ); fire = new ForestFire(width,width); frameRate(30); } //------------------------- void draw(){ background(0); fire.update(); fire.visualize(); if(mousePressed && mouseY=0 && mouseY>=0){ if(tool==FIRE) fire.startFire(mouseX,mouseY); if(tool==RAISE_GROUND) fire.modifyTerrain(mouseX,mouseY,5); if(tool==LOWER_GROUND) fire.modifyTerrain(mouseX,mouseY,-5); if(tool==MORE_FUEL) fire.modifyFlammability(mouseX,mouseY,0.01); if(tool==LESS_FUEL) fire.modifyFlammability(mouseX,mouseY,-0.01); if(tool==NEW_TERRAIN) fire = new ForestFire(width,width); } colorMode(RGB,255); textAlign(CENTER); fill(255); text( toolName() ,width/2, height-2); } //------------------------- void keyPressed(){ if(key=='f') tool = FIRE; if(key=='q') tool = RAISE_GROUND; if(key=='a') tool = LOWER_GROUND; if(key=='w') tool = MORE_FUEL; if(key=='s') tool = LESS_FUEL; if(key=='s') tool = LESS_FUEL; if(key=='n') tool = NEW_TERRAIN; if(key==' ') tool = (tool+1)%6; } //------------------------- String toolName(){ if(tool==FIRE) return "start fire"; if(tool==RAISE_GROUND) return "raise terrain"; if(tool==LOWER_GROUND) return "lower terrain"; if(tool==MORE_FUEL) return "increase flammability"; if(tool==LESS_FUEL) return "decrease flammability"; if(tool==NEW_TERRAIN) return "randomize new forest"; return ""; } //#########################