PImage carte; Table table; Table tableDoubles; int lignes; PImage iconKorok; PImage iconKorokDouble; int baseKorokHeight = 7 * 4; int baseKorokWidth = 7 * 4; int baseKorokDoubleWidth = 9 * 4; int baseKorokDoubleHeight = 7 * 4; PFont font; Integrator[] interpKorok; Integrator[] interpKorokDouble; void setup() { size(1200, 1000); frameRate(30); carte = loadImage("totk_map.jpg"); carte.resize(1200, 1000); iconKorok = loadImage("korogu_simple.png"); iconKorokDouble = loadImage("korogu_double.png"); iconKorokDouble.resize(9 * 4, 7 * 4); table = loadTable("korogus.csv"); tableDoubles = loadTable("korogus_duos.csv"); font = loadFont("Rockwell-16.vlw"); textFont(font); textAlign(CENTER); interpKorok = new Integrator[table.getRowCount()]; for(int i = 0; i < table.getRowCount(); i++) { interpKorok[i] = new Integrator(500); } interpKorokDouble = new Integrator[tableDoubles.getRowCount()]; for(int i = 0; i < tableDoubles.getRowCount(); i++) { interpKorokDouble[i] = new Integrator(500); } } void draw() { background(255); image(carte, 0, 0); smooth(); fill(192, 0, 0); noStroke(); image(carte, 0, 0); for(int i = 0; i < table.getRowCount(); i++) { TableRow row = table.getRow(i); interpKorok[i].update(); drawIcon(row.getFloat(0), row.getFloat(2), interpKorok[i].value / 800, iconKorok, baseKorokWidth, baseKorokHeight); } for(int i = 0; i < tableDoubles.getRowCount(); i++) { TableRow row = tableDoubles.getRow(i); interpKorokDouble[i].update(); drawIcon(row.getFloat(0), row.getFloat(2), interpKorokDouble[i].value / 800, iconKorokDouble, baseKorokDoubleWidth, baseKorokDoubleHeight); } } void drawIcon(float x1, float y1, float size, PImage icon, float baseWidth, float baseHeight) { float iconWidth = baseWidth; float iconHeight = baseHeight; float x = (x1 + 6000) / 10; float y = (y1 + 5000) / 10; iconHeight = iconHeight * size; iconWidth = iconWidth * size; if(mouseX > x - iconWidth / 2 && mouseX < x + iconWidth / 2 && mouseY > y - iconHeight/ 2 && mouseY < y + iconHeight/ 2 ) { iconHeight = iconHeight * 1.5; iconWidth = iconWidth * 1.5; fill(255); text((int)x1 + ", " + (int)y1, x, y - iconHeight / 2 - 10); } x = x - iconWidth / 2; y = y - iconHeight / 2; image(icon, x, y, iconWidth, iconHeight); } void keyPressed() { if(key == ' ') majDonnees(); } void majDonnees() { for(int i = 0; i < table.getRowCount(); i++) { interpKorok[i].target(random(1, 1000)); } for(int i = 0; i < tableDoubles.getRowCount(); i++) { interpKorokDouble[i].target(random(1, 1000)); } }