|
|
|
|
@ -47,6 +47,7 @@ void setup() {
|
|
|
|
|
Scoreboard.applyScores();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// positionnement des pions sur une case, répartis en cercle si ils sont plusieurs
|
|
|
|
|
void drawAround(int score) {
|
|
|
|
|
//println("draw around", score);
|
|
|
|
|
for (int i=0; i<positionTable.getRowCount(); i++) {
|
|
|
|
|
@ -70,6 +71,7 @@ void drawAround(int score) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// fonction appellée à chaque mouvement de souris
|
|
|
|
|
void mouseMoved() {
|
|
|
|
|
for (int i = 0 ; i < equipes.length; i++) {
|
|
|
|
|
Equipe e = equipes[i];
|
|
|
|
|
@ -114,6 +116,7 @@ void mouseMoved() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// fonction appellée à chaque appui du clic
|
|
|
|
|
void mousePressed() {
|
|
|
|
|
for (int i = 0 ; i < equipes.length; i++) {
|
|
|
|
|
Pion p = equipes[i].pion;
|
|
|
|
|
@ -125,16 +128,25 @@ void mousePressed() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (Scoreboard.mouseHover()) {
|
|
|
|
|
Scoreboard.toggleDisplay();
|
|
|
|
|
}
|
|
|
|
|
//if (Scoreboard.mouseHover()) {
|
|
|
|
|
// Scoreboard.toggleDisplay();
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
Equipe clicked = findClosestEquipeFromMouse();
|
|
|
|
|
//if (!clicked.pion.dragged) {
|
|
|
|
|
clicked.incTour();
|
|
|
|
|
Scoreboard.save();
|
|
|
|
|
println("Clicked on Equipe", clicked.id+1, "set tour to ", clicked.tour);
|
|
|
|
|
//}
|
|
|
|
|
float eD = dist(clicked.posX, clicked.posY, mouseX, mouseY);
|
|
|
|
|
if (eD<=clicked.radius/2) {
|
|
|
|
|
// désactiver l'incrémentation si le pion était encore à son emplacement d'origine
|
|
|
|
|
//if (!clicked.pion.dragged) {
|
|
|
|
|
if (mouseButton == LEFT) {
|
|
|
|
|
clicked.incTour();
|
|
|
|
|
} else if (mouseButton == RIGHT) {
|
|
|
|
|
clicked.decTour();
|
|
|
|
|
}
|
|
|
|
|
Scoreboard.save();
|
|
|
|
|
println("Clicked on Equipe", clicked.id+1, "set tour to", clicked.tour);
|
|
|
|
|
//}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!EDITING) return;
|
|
|
|
|
for (int i = 0 ; i < positions.length; i++) {
|
|
|
|
|
@ -148,6 +160,7 @@ void mousePressed() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// fonction appellée à chaque déplacement appuyé (drag)
|
|
|
|
|
void mouseDragged() {
|
|
|
|
|
for (int i = 0 ; i < equipes.length; i++) {
|
|
|
|
|
Pion p = equipes[i].pion;
|
|
|
|
|
@ -170,6 +183,7 @@ void mouseDragged() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// fonction appellée à chaque relâchement du clic
|
|
|
|
|
void mouseReleased() {
|
|
|
|
|
for (int i = 0 ; i < equipes.length; i++) {
|
|
|
|
|
Pion p = equipes[i].pion;
|
|
|
|
|
@ -190,6 +204,7 @@ void mouseReleased() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// fonction appellée à chaque mouvement de molette
|
|
|
|
|
void mouseWheel(MouseEvent event) {
|
|
|
|
|
for (int i = 0 ; i < equipes.length; i++) {
|
|
|
|
|
Equipe e = equipes[i];
|
|
|
|
|
@ -263,11 +278,13 @@ Equipe findClosestEquipeFromMouse() {
|
|
|
|
|
return closest;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// test de présence du fichier en paramètre
|
|
|
|
|
boolean fileExists(String filename) {
|
|
|
|
|
File f = dataFile(filename);
|
|
|
|
|
return f.isFile();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// LAZOR !!!
|
|
|
|
|
void LAZOR(PVector source, PVector target, int noiseLevel) {
|
|
|
|
|
stroke(random(0, 255), random(0, 100), random(0, 100));
|
|
|
|
|
strokeWeight(random(0,3));
|
|
|
|
|
@ -278,6 +295,7 @@ void LAZOR(PVector source, PVector target) {
|
|
|
|
|
LAZOR(source, target, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// RECTANGULAR LAZOR !!!
|
|
|
|
|
void LAZORECT(float posX, float posY, float width, float height) {
|
|
|
|
|
stroke(random(0, 255), random(0, 100), random(0, 100));
|
|
|
|
|
strokeWeight(random(0,3));
|
|
|
|
|
@ -289,23 +307,32 @@ void LAZORECT(float posX, float posY, float width, float height) {
|
|
|
|
|
//LAZOR(new PVector(posX, posY+height), new PVector(posX, posY));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// boucle d'affichage appellée plusieurs fois par seconde (~60)
|
|
|
|
|
void draw() {
|
|
|
|
|
// afficher l'image de fond
|
|
|
|
|
image(backgroundImage, 0, 0, displayWidth, displayHeight);
|
|
|
|
|
|
|
|
|
|
if (!Scoreboard.display) image(titleImage, 0, 0, displayWidth, displayHeight);
|
|
|
|
|
// afficher le titre si le scoreboard est masqué
|
|
|
|
|
// if (!Scoreboard.display)
|
|
|
|
|
image(titleImage, 0, 0, displayWidth, displayHeight);
|
|
|
|
|
|
|
|
|
|
// afficher le scoreboard
|
|
|
|
|
Scoreboard.draw();
|
|
|
|
|
|
|
|
|
|
// mettre à jour les équipes
|
|
|
|
|
for (int i = 0 ; i < equipes.length; i++) {
|
|
|
|
|
equipes[i].update();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// recharger les scores depuis le fichier csv
|
|
|
|
|
if (millis() > timer + 2000) {
|
|
|
|
|
Scoreboard.reloadFromDisk();
|
|
|
|
|
timer = millis();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// si on est pas en mode édition, arrêter là
|
|
|
|
|
if (!EDITING) return;
|
|
|
|
|
// afficher les positions à éditer
|
|
|
|
|
for (int i = 0 ; i < positions.length; i++) {
|
|
|
|
|
positions[i].draw();
|
|
|
|
|
}
|
|
|
|
|
|