diff --git a/Cercles.svg b/Cercles.svg deleted file mode 100644 index 98d64ed..0000000 --- a/Cercles.svg +++ /dev/null @@ -1,451 +0,0 @@ - -image/svg+xml diff --git a/Equipe.pde b/Equipe.pde index c5cc947..d375352 100644 --- a/Equipe.pde +++ b/Equipe.pde @@ -8,13 +8,6 @@ class Equipe { Equipe(int id) { this.id = id; this.score = 0; - //float randomHue = random(255); - //float randomSaturation = random(100,255); - //float randomBrightness = random(80,255); - //color inverseText = color(float(255)-randomHue, float(255)-randomSaturation, float(255)-randomBrightness); - //this.couleur = color(randomHue, randomSaturation, randomBrightness); - //this.pion = new Pion(this.id, this.couleur, inverseText); - // générer un pion pour l'équipe this.pion = new Pion(this.id); @@ -48,6 +41,6 @@ class Equipe { void setScore(int score) { this.score = score; - println("Equipe", this.id+1, "setScore", score); + //println("Equipe", this.id+1, "setScore", score); } } diff --git a/Pion.pde b/Pion.pde index 7623808..652036f 100644 --- a/Pion.pde +++ b/Pion.pde @@ -1,21 +1,19 @@ -class Pion { - int id; - float posX, posY; // position - color bgColor, textColor; // couleur du fond et du texte - boolean hovered, dragged = false; // état au survol et en déplacement - int radius = 30; // rayon du pion +class Pion extends Position { int margin = 45; // marge au bord de l'écran - PVector offset; + boolean lazored = false; Pion(int id) { - this.id = id; - this.bgColor = color(235, 112, 71, 0.8); - this.textColor = color(200); - this.posX = floor((displayWidth-margin*2)/nombreEquipes)*id+radius+margin; - this.posY = displayHeight-24; + super(id); + this.bgColor = color(0, 0, 0); + this.textColor = color(255, 255, 255); + this.posX = floor((displayWidth-margin*2)/nombreEquipes)*id+radius/2+margin; + this.posY = displayHeight-28; + this.radius = 30; } void draw() { + //fireLazors(this); + color bgColor = this.getBgColor(); color textColor = this.getTextColor(); @@ -42,22 +40,16 @@ class Pion { return this.dragged? color(0): this.hovered? this.bgColor: this.textColor; } - void dragStart() { - this.dragged = true; - // calcul et stockage du décalage au curseur pour éviter l'effet snap - this.offset = new PVector(posX-mouseX, posY-mouseY); - } - - void dragStop() { - this.dragged = false; - this.offset = new PVector(0,0); - } - - void hoverStart() { - this.hovered = true; - } - void hoverStop() { this.hovered = false; + this.lazored = false; + } + + void fireLazors(Pion p) { + if (!this.lazored) return; + stroke(255, 15, 15); + strokeWeight(2); + line(245, 158, p.posX, p.posY); + line(displayWidth-245, 158, p.posX, p.posY); } } diff --git a/Plateau.pde b/Plateau.pde index 4b42553..366f53e 100644 --- a/Plateau.pde +++ b/Plateau.pde @@ -3,12 +3,8 @@ Equipe[] equipes; Position[] positions; int nombreEquipes = 42; PFont quicksandFont; -boolean EDITING; - -Table table_Cercles, positionTable, scoreboard; -float[] coord_x; -float[] coord_y; -int[] coord_rayon; +boolean EDITING=false; +Table positionTable, scoreboard; void setup() { @@ -19,31 +15,53 @@ void setup() { colorMode(RGB, 255); rectMode(CENTER); noStroke(); - EDITING=false; + // modifier les positions des cases du plateau + //EDITING=true; - table_Cercles = loadTable("data/positionTable.csv", "header"); - quicksandFont = loadFont("Quicksand-Bold-40.vlw"); + // chargement du scoreboard ou génération du scoreboard vide + loadScoreboard(); + positionTable = loadTable("data/positionTable.csv", "header"); + quicksandFont = loadFont("Quicksand-Bold-40.vlw"); backgroundImage = loadImage("backgroundImage.jpg"); - image(backgroundImage, 0, 0, displayWidth, displayHeight); - + + // génération des équipes equipes = new Equipe[nombreEquipes]; for (int i=0; i0) { + float angle = PI; + // ce bloc est incompréhensible... mais il fait son taf + for(int j=0; jthreshold && (p.hovered || p.dragged)) { - p.dragStop(); - p.hoverStop(); - break; - } else if (distPosition<=threshold && !p.hovered) { - p.hoverStart(); - //println(p.posX, p.posY); - break; - } + if (!EDITING) return; + for (int i = 0 ; i < positions.length; i++) { + Position p = positions[i]; + float distPosition = dist(p.posX, p.posY, mouseX, mouseY); + float threshold = p.radius/2; + if (distPosition>threshold && (p.hovered || p.dragged)) { + p.dragStop(); + p.hoverStop(); + break; + } else if (distPosition<=threshold && !p.hovered) { + p.hoverStart(); + break; } } } @@ -100,20 +118,18 @@ void mousePressed() { } } - if (EDITING) { - for (int i = 0 ; i < positions.length; i++) { - Position p = positions[i]; - float d = dist(p.posX, p.posY, mouseX, mouseY); - if (d