//sunrise / sunset API: https://sunrise-sunset.org/api | |||||
PVector v2_coordinates = new PVector(48.799337, 9.794482); //badmauer; x: latitude, y: longitude | PVector v2_coordinates = new PVector(48.799337, 9.794482); //badmauer; x: latitude, y: longitude | ||||
boolean b_isRaining; | boolean b_isRaining; | ||||
void initWeather(){ | void initWeather(){ | ||||
//sunrise / sunset API: https://sunrise-sunset.org/api | |||||
JSONObject sun; | JSONObject sun; | ||||
if(b_loadSun) sun = loadJSONObject("https://api.sunrise-sunset.org/json?lat=" + v2_coordinates.x + " &lng=" + v2_coordinates.y); | if(b_loadSun) sun = loadJSONObject("https://api.sunrise-sunset.org/json?lat=" + v2_coordinates.x + " &lng=" + v2_coordinates.y); | ||||
else sun = loadJSONObject(dataPath("weather/today.json")); | else sun = loadJSONObject(dataPath("weather/today.json")); |
Citizen mensch; | |||||
PImage img_houses; | |||||
void setup() { | |||||
size(400, 300); | |||||
fill(0); | |||||
//ft = new SimpleDateFormat ("HH:mm:ss"); | |||||
img_houses = loadImage(dataPath("houses_with_borders_small.png")); | |||||
blendMode(MULTIPLY); | |||||
surface.setSize(img_houses.width, img_houses.height); | |||||
} | |||||
class Citizen{ | |||||
int i_xSpawn, i_ySpawn, i_xPos, i_yPos, i_diameter; | |||||
boolean b_linked; | |||||
int i_home; | |||||
String S_name; | |||||
//0-100: | |||||
//motivation (bei arbeiter montag ~40, freitag ~80 - 100) | |||||
//7 emotionen? | |||||
// berufsfeld: webdesigner, pädagoge, schmuckdesigner, schmied | |||||
// berufsstatus: beamter, selbstständiger, unternehmer, angestellter, grundschüler, gymnasiast, hauptschüler, realschüler, azubi, student, rentner | |||||
// identität: gelbhemd, lokal, regional, national, international, fremd, | |||||
//names of pathfinding algorithms: greedy best first search, uniform cost search, a star search | |||||
Citizen(int home, String name){ | |||||
i_home = home; | |||||
S_name = name; | |||||
i_diameter = 15; | |||||
} | |||||
void goTo(int house){ | |||||
println("want to go to house " + house); | |||||
} | |||||
void spawn(int house){ | |||||
PVector v2_spawnPoint = spawnAreas.get(house).v2_randomSpawnPoint(); | |||||
i_xSpawn = int(v2_spawnPoint.x); | |||||
i_ySpawn = int(v2_spawnPoint.y); | |||||
i_xPos = i_xSpawn; | |||||
i_yPos = i_ySpawn; | |||||
b_linked = true; | |||||
} | |||||
void despawn(){ | |||||
b_linked = false; | |||||
} | |||||
void display(){ | |||||
ellipse(i_xPos, i_yPos, i_diameter, i_diameter); | |||||
textSize(10); | |||||
text(S_name, i_xPos, i_yPos-10); | |||||
} | |||||
} | |||||
void draw() { | |||||
background(255); | |||||
image(img_houses, 0, 0, img_houses.width, img_houses.height); | |||||
//image(img_streets, 0, 0, img_houses.width, img_houses.height); | |||||
} |
boolean b_smallerImage = true; //use a cropped, smaller version of the 1920x1080 image for faster development | boolean b_smallerImage = true; //use a cropped, smaller version of the 1920x1080 image for faster development | ||||
boolean b_loadSun = false; //load sun from web-api instead of local json file (local file is adressed to january 4th 2019. might implement a check that downloads today's information only once... | boolean b_loadSun = false; //load sun from web-api instead of local json file (local file is adressed to january 4th 2019. might implement a check that downloads today's information only once... | ||||
void mouseClicked(){ | |||||
mensch.goTo(112); | |||||
} | |||||
//void mouseClicked(){ | |||||
//mensch.goTo(112); | |||||
//} | |||||
class Citizen{ | class Citizen{ | ||||
int i_xSpawn, i_ySpawn, i_xPos, i_yPos, i_diameter; | int i_xSpawn, i_ySpawn, i_xPos, i_yPos, i_diameter; | ||||
String S_name; | String S_name; | ||||
//0-100: | |||||
//motivation (bei arbeiter montag ~40, freitag ~80 - 100) | |||||
//7 emotionen? | |||||
// berufsfeld: webdesigner, pädagoge, schmuckdesigner, schmied | // berufsfeld: webdesigner, pädagoge, schmuckdesigner, schmied | ||||
// berufsstatus: beamter, selbstständiger, unternehmer, angestellter, grundschüler, gymnasiast, hauptschüler, realschüler, azubi, student, rentner | // berufsstatus: beamter, selbstständiger, unternehmer, angestellter, grundschüler, gymnasiast, hauptschüler, realschüler, azubi, student, rentner | ||||
} | } | ||||
} | } | ||||
void setup() { | void setup() { | ||||
size(400, 300); | size(400, 300); | ||||
fill(0); | fill(0); | ||||
surface.setSize(img_houses.width, img_houses.height); | surface.setSize(img_houses.width, img_houses.height); | ||||
initPathFinding(); | |||||
initWeather(); | initWeather(); | ||||
mensch.spawn(59); | mensch.spawn(59); | ||||
} | } | ||||
void draw() { | void draw() { | ||||
background(255); | background(255); | ||||
image(img_houses, 0, 0, img_houses.width, img_houses.height); | image(img_houses, 0, 0, img_houses.width, img_houses.height); | ||||
//image(img_streets, 0, 0, img_houses.width, img_houses.height); | //image(img_streets, 0, 0, img_houses.width, img_houses.height); | ||||
textSize(7); | textSize(7); | ||||
textAlign(CENTER); | textAlign(CENTER); | ||||
spawn.display(); | spawn.display(); | ||||
} | } | ||||
nodeDisplay(); | |||||
mensch.display(); | mensch.display(); | ||||
UI(); | UI(); |