import processing.core.*; 
import processing.data.*; 
import processing.event.*; 
import processing.opengl.*; 

import ddf.minim.*; 

import java.util.HashMap; 
import java.util.ArrayList; 
import java.io.File; 
import java.io.BufferedReader; 
import java.io.PrintWriter; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.io.IOException; 

public class projet_processing extends PApplet {

//permet d'iporter une musique
AudioPlayer musiqueJeu;
Minim minim;
PImage cible;
PImage silhouette;
PImage img;
int xsilhouette=60;
int ysilhouette=60;
int xcible=60;
int ycible=60;
float d=60;
int score=0;
PImage cursor;
int page=0; //page de départ
int clic=0;
float compteur=1800;
float compteur2=180;
Bouton boutonJOUER= new Bouton();
Bouton boutonFacile= new Bouton();
Bouton boutonDifficile= new Bouton();
  public void setup(){
  
  cible=loadImage("cible.png");
  xcible = PApplet.parseInt(random(0, 1800));
  ycible = PApplet.parseInt(random(0, 900));
  img=loadImage("terrain.jpg");
  silhouette=loadImage("silhouette.png");
 // Position aléatoire de la silhouette
  xsilhouette = PApplet.parseInt(random(0, 1800));
  ysilhouette = PApplet.parseInt(random(0, 900));
  cursor(CROSS);
  minim= new Minim(this);
  musiqueJeu=minim.loadFile("audiohub_2020-00165-1990_wild-west_testversion.mp3");
  
  }

  public void draw(){
    if(page==0){
    acceuil();
      }else if(page==1){ 
      page1();
        }else if(page==2){ 
        jouer();
  
  if (compteur2 % 180 == 0)//permet de faire bouger les cibles et les silhouettes tout les 3 secondes
  {
   xsilhouette=PApplet.parseInt (random(0,1800));
   ysilhouette=PApplet.parseInt (random(0,900));
   xcible=PApplet.parseInt (random(0,1800));
   ycible=PApplet.parseInt (random(0,900));
  }
  
    textSize(60);
    text(clic, 1800,1050);
    text(score,1000,800);
    text(compteur/60,1800,1000);
      if(clic>=1){
        if(compteur>0){
          compteur--;
        }
      }
   }  
     if(score==25){//compteur quand on atteint 25 points on retourne a la page d'acceuil
       page = 0;
     }
     compteur2 = compteur2+1;
  }
  
  public void mousePressed() {
 d= dist(xsilhouette,ysilhouette,mouseX,mouseY);
 println(xsilhouette,ysilhouette,mouseX,mouseY,d);
 if(d<75)
 
 { 
   xsilhouette=PApplet.parseInt (random(0,1800));//permet d'apparaitre aléatoirement quand on touche une silhouette 
   ysilhouette=PApplet.parseInt (random(0,900));
   score=score-1;
 
 }
 
   d= dist(xcible,ycible,mouseX,mouseY);
   println(xcible,ycible,mouseX,mouseY,d);
   if(d<75)
 {
   xcible=PApplet.parseInt (random(0,1800));//permet d'apparaitre aléatoirement quand on touche une cible
   ycible=PApplet.parseInt (random(0,900));
   score=score+1; 
   clic++;
  }
}
  public void mouseClicked(){
    if( boutonJOUER.tester( mouseX,mouseY)== true && page == 0){
      page=1;
    }else if(page==1 && boutonFacile.tester(mouseX,mouseY)== true){
      page = 2;
 
  }
}


 
 
 
public void acceuil(){
  background(0,0,255);
  boutonJOUER.nom="JOUER";
  boutonJOUER.seDessiner(width/2,height/2);//permet de situer le bouton jouer au centre de l'écran
}
class Bouton{
int r;
int g;
int b;
int largeur;
int longueur;
int textSize;
String nom;
 Bouton(){
 r= 255;
 g= 255;
 b= 255;
 largeur= 350;
 longueur= 200;
 
 }
public void seDessiner( int x, int y){
rectMode(CENTER);
fill(255);
stroke(255,0,0);
strokeWeight(4);
rect(x,y,largeur,longueur);
fill(0);
textAlign(CENTER,CENTER);
textSize(30);
text(nom,x,y,largeur,longueur);

}


public boolean tester(int x,int y){
  int pixel=get( x , y );
  float rouge= red(pixel);
  float green= green(pixel);
  float blue= blue(pixel);
  
    if( rouge>= 250 && blue >= 250 && green >= 250){
    return true;
       }else{
       return false;
    } 
  }
}

public void jouer(){
  page=2;
  background(img);
  image(cible,xcible,ycible); 
  image(silhouette,xsilhouette,ysilhouette);
  musiqueJeu.play();
}
public void page1(){
page=1;
background(255,0,0);
boutonFacile.nom= "Facile";
boutonFacile.seDessiner(width/2,height/2);
}

  public void settings() {  size(1920,1080); }
  static public void main(String[] passedArgs) {
    String[] appletArgs = new String[] { "projet_processing" };
    if (passedArgs != null) {
      PApplet.main(concat(appletArgs, passedArgs));
    } else {
      PApplet.main(appletArgs);
    }
  }
}
