import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.imageio.ImageIO; import java.io.IOException; import java.io.File; import java.awt.Graphics; import java.awt.Image; public class Panneau extends JPanel { private Bloc b; private Bloc tabBloc[][]; // Tableau décors private Personnage p; private Monstre tabMonstre[]; // Tableau monstres 1 Dimension private int saut; private int score; private int scroll; private Monstre m; public Panneau() { //Initialisation des tableaux tabBloc= new Bloc[23][100]; p=new Personnage(55,450); tabMonstre=new Monstre[3]; score=0; scroll=0; // REMPLISSAGE TABLEAU DU DECORS for(int i=0;i<23;i++) { for (int j=0;j<100;j++) { tabBloc[i][j]=new Bloc(2); } } // Blocs non cassables LAVE for(int j=0;j<22;j++) { tabBloc[21][j].setType(1); tabBloc[20][j].setType(1); } tabBloc[18][10].setType(1); tabBloc[13][13].setType(1); //tabBloc[13][12].setType(1); tabBloc[14][15].setType(1); tabBloc[15][15].setType(1); tabBloc[16][16].setType(1); tabBloc[19][18].setType(1); tabBloc[18][19].setType(1); tabBloc[19][19].setType(1); tabBloc[17][19].setType(1); tabBloc[17][20].setType(1); tabBloc[18][20].setType(1); tabBloc[19][20].setType(1); tabBloc[16][20].setType(1); tabBloc[17][21].setType(1); tabBloc[18][21].setType(1); tabBloc[19][21].setType(1); tabBloc[16][21].setType(1); //Orgues tabBloc[17][23].setType(8); tabBloc[18][23].setType(8); tabBloc[19][23].setType(8); tabBloc[20][23].setType(8); tabBloc[21][23].setType(8); tabBloc[16][23].setType(7); //top tabBloc[16][24].setType(8); tabBloc[17][24].setType(8); tabBloc[18][24].setType(8); tabBloc[19][24].setType(8); tabBloc[20][24].setType(8); tabBloc[21][24].setType(8); tabBloc[15][24].setType(7); //top tabBloc[15][26].setType(8); tabBloc[16][26].setType(8); tabBloc[17][26].setType(8); tabBloc[18][26].setType(8); tabBloc[19][26].setType(8); tabBloc[20][26].setType(8); tabBloc[21][26].setType(8); tabBloc[14][26].setType(7); //top tabBloc[16][28].setType(8); tabBloc[17][28].setType(8); tabBloc[18][28].setType(8); tabBloc[19][28].setType(8); tabBloc[20][28].setType(8); tabBloc[21][28].setType(8); tabBloc[15][28].setType(7); //top tabBloc[17][29].setType(8); tabBloc[18][29].setType(8); tabBloc[19][29].setType(8); tabBloc[20][29].setType(8); tabBloc[21][29].setType(8); tabBloc[16][29].setType(7); //top tabBloc[16][31].setType(7); //top tabBloc[17][31].setType(8); tabBloc[18][31].setType(8); tabBloc[19][31].setType(8); tabBloc[20][31].setType(8); tabBloc[21][31].setType(8); //Après les orgues: tabBloc[17][33].setType(1); tabBloc[17][33].setType(1); tabBloc[18][33].setType(1); tabBloc[19][33].setType(1); tabBloc[20][33].setType(1); tabBloc[21][33].setType(1); tabBloc[17][34].setType(1); tabBloc[17][34].setType(1); tabBloc[18][34].setType(1); tabBloc[19][34].setType(1); tabBloc[20][34].setType(1); tabBloc[21][34].setType(1); tabBloc[17][35].setType(1); tabBloc[18][35].setType(1); tabBloc[19][35].setType(1); tabBloc[20][35].setType(1); tabBloc[21][35].setType(1); tabBloc[18][36].setType(1); tabBloc[19][36].setType(1); tabBloc[20][36].setType(1); tabBloc[21][36].setType(1); tabBloc[18][37].setType(1); tabBloc[19][37].setType(1); tabBloc[20][37].setType(1); tabBloc[21][37].setType(1); tabBloc[18][38].setType(1); tabBloc[19][38].setType(1); tabBloc[20][38].setType(1); tabBloc[21][38].setType(1); tabBloc[18][39].setType(1); tabBloc[19][39].setType(1); tabBloc[20][39].setType(1); tabBloc[21][39].setType(1); tabBloc[18][40].setType(1); tabBloc[21][40].setType(1); tabBloc[18][41].setType(1); tabBloc[21][41].setType(1); tabBloc[11][42].setType(1); tabBloc[18][42].setType(1); tabBloc[21][42].setType(1); tabBloc[11][43].setType(1); tabBloc[18][43].setType(1); tabBloc[21][43].setType(1); tabBloc[13][44].setType(1); tabBloc[21][44].setType(1); tabBloc[13][45].setType(1); tabBloc[21][45].setType(1); tabBloc[13][46].setType(1); tabBloc[21][46].setType(1); tabBloc[13][47].setType(1); tabBloc[21][47].setType(1); tabBloc[15][48].setType(1); tabBloc[21][48].setType(1); tabBloc[15][49].setType(1); tabBloc[21][49].setType(1); tabBloc[15][50].setType(1); tabBloc[21][50].setType(1); tabBloc[15][51].setType(1); tabBloc[19][51].setType(1); tabBloc[21][51].setType(1); tabBloc[15][52].setType(1); tabBloc[21][52].setType(1); tabBloc[18][53].setType(1); tabBloc[21][53].setType(1); tabBloc[18][54].setType(1); tabBloc[21][54].setType(1); tabBloc[18][55].setType(1); tabBloc[21][55].setType(1); tabBloc[21][56].setType(1); tabBloc[21][57].setType(1); tabBloc[21][58].setType(1); tabBloc[21][59].setType(1); //Blocs cassables tabBloc[15][21].setType(3); //Diamants tabBloc[8][13].setType(4); tabBloc[9][13].setType(4); tabBloc[10][13].setType(4); tabBloc[11][26].setType(4); tabBloc[16][39].setType(4); tabBloc[9][42].setType(4); //Marteau tabBloc[19][5].setType(5); //Orgues top //tabBloc[][]=new Bloc(7); //Orgues normal //tabBloc[][]=new Bloc(8); tabMonstre[0]=new Monstre(18,12); tabMonstre[1]=new Monstre(16,38); tabMonstre[2]=new Monstre(19,54); saut = 0; } public void deplacementDroite() { if (p.getX() %25==0) { if(p.getY()%25==0) { if(((tabBloc[p.getY()/25][p.getX()/25+1].getType()==2)&&(tabBloc[p.getY()/25+1][p.getX()/25+1].getType()==2))||(tabBloc[p.getY()/25][p.getX()/25+1].getType()==4)||(tabBloc[p.getY()/25+1][p.getX()/25+1].getType()==4)||(tabBloc[p.getY()/25+1][p.getX()/25+1].getType()==5)) { p.setX(p.getX()+1); tabBloc[p.getY()/25+1][p.getX()/25].setType(2); if(p.getX()>400) { scroll++; } } } else { if(((tabBloc[p.getY()/25][p.getX()/25+1].getType()==2)&&(tabBloc[p.getY()/25+1][p.getX()/25+1].getType()==2)&&(tabBloc[p.getY()/25+2][p.getX()/25+1].getType()==2))||(tabBloc[p.getY()/25][p.getX()/25+1].getType()==4)||(tabBloc[p.getY()/25+1][p.getX()/25+1].getType()==4)||(tabBloc[p.getY()/25+2][p.getX()/25+1].getType()==4)||(tabBloc[p.getY()/25][p.getX()/25+1].getType()==5)||(tabBloc[p.getY()/25+1][p.getX()/25+1].getType()==5)||(tabBloc[p.getY()/25+2][p.getX()/25+1].getType()==5)) { p.setX(p.getX()+1); tabBloc[p.getY()/25+1][p.getX()/25].setType(2); if(p.getX()>400) { scroll++; } } } } else { p.setX(p.getX()+1); if(p.getX()>400) { scroll++; } } //p.setImage(""); } public void deplacementGauche() { if (p.getX() %25==0) { if(p.getY()%25==0) { if(((tabBloc[p.getY()/25][p.getX()/25-1].getType()==2)&&(tabBloc[p.getY()/25+1][p.getX()/25-1].getType()==2))||(tabBloc[p.getY()/25][p.getX()/25-1].getType()==4)||(tabBloc[p.getY()/25+1][p.getX()/25-1].getType()==5)) { p.setX(p.getX()-1); tabBloc[p.getY()/25+1][p.getX()/25].setType(2); if(p.getX()>400) { scroll--; } } } else { if(((tabBloc[p.getY()/25][p.getX()/25-1].getType()==2)&&(tabBloc[p.getY()/25+1][p.getX()/25-1].getType()==2)&&(tabBloc[p.getY()/25+2][p.getX()/25-1].getType()==2))||(tabBloc[p.getY()/25][p.getX()/25-1].getType()==4)||((tabBloc[p.getY()/25+1][p.getX()/25-1].getType()==5)||(tabBloc[p.getY()/25+1][p.getX()/25-1].getType()==5)||(tabBloc[p.getY()/25+2][p.getX()/25-1].getType()==5))) { p.setX(p.getX()-1); tabBloc[p.getY()/25+1][p.getX()/25].setType(2); if(p.getX()>400) { scroll--; } } } } else { p.setX(p.getX()-1); if(p.getX()>400) { scroll--; } } //p.setImage(""); } public void deplacementSaut() { if (saut < 100) { if (p.getY() %25==0) { if(p.getX()%25==0) { if((tabBloc[p.getY()/25-1][p.getX()/25].getType()==2)||(tabBloc[p.getY()/25-1][p.getX()/25].getType()==4)) { p.setY(p.getY()-1); saut++; } } else { if(((tabBloc[p.getY()/25-1][p.getX()/25].getType()==2)&&(tabBloc[p.getY()/25-1][p.getX()/25+1].getType()==2))||(tabBloc[p.getY()/25-1][p.getX()/25].getType()==4)||(tabBloc[p.getY()/25-1][p.getX()/25+1].getType()==4)) { p.setY(p.getY()-1); saut++; } } } else { p.setY(p.getY()-1); saut++; } } } public void deplacementBas () { if (p.getY() %25==0) { if(p.getX()%25==0) { if((tabBloc[p.getY()/25+2][p.getX()/25].getType()==2)||(tabBloc[p.getY()/25+2][p.getX()/25].getType()==4)||(tabBloc[p.getY()/25+2][p.getX()/25].getType()==5)) { p.setY(p.getY()+1); tabBloc[p.getY()/25+1][p.getX()/25].setType(2); saut--; } else { saut = 0; } } else { if(((tabBloc[p.getY()/25+2][p.getX()/25].getType()==2)&&(tabBloc[p.getY()/25+2][p.getX()/25+1].getType()==2))||(tabBloc[p.getY()/25+2][p.getX()/25].getType()==4)||(tabBloc[p.getY()/25+2][p.getX()/25+1].getType()==4)||((tabBloc[p.getY()/25+2][p.getX()/25].getType()==5)||(tabBloc[p.getY()/25+2][p.getX()/25+1].getType()==5))) { p.setY(p.getY()+1); tabBloc[p.getY()/25+1][p.getX()/25].setType(2); saut--; } else { saut = 0; } } } else { p.setY(p.getY()+1); tabBloc[p.getY()/25+1][p.getX()/25].setType(2); saut--; } } /*public boolean getRecuperationMarteau() { boolean recuperationMarteau=false; if(tabBloc[p.getY()/25+1][p.getX()/25].getType()==5) { tabBloc[p.getY()/25+1][p.getX()/25].setType(2); recuperationMarteau=true; } return recuperationMarteau; }*/ public int getSaut() { return saut; } public void setScore(int x) { score=x; } public int getScore() { return score; } public boolean getScorediamant() { boolean scorediamant= false; if((tabBloc[p.getY()/25][p.getX()/25].getType()==4)||(tabBloc[p.getY()/25+1][p.getX()/25].getType()==4)) { tabBloc[p.getY()/25][p.getX()/25].setType(2); scorediamant=true; score= score + 50; } return scorediamant; } public void deplacementMonstre() { for(int i=0;i<3;i++) { if(m.getDirection()==0) { m.setX(m.getX()+1); m.setDirection(m.getDirection()+1); } else { if(m.getDirection()==1) { m.setX(m.getX()+1); m.setDirection(m.getDirection()+1); } else { if(m.getDirection()==2) { m.setX(m.getX()+1); m.setDirection(m.getDirection()+1); } else { if(m.getDirection()==3) { m.setX(m.getX()-1); m.setDirection(m.getDirection()+1); } else { if(m.getDirection()==4) { m.setX(m.getX()-1); m.setDirection(m.getDirection()+1); } else { if(m.getDirection()==5) { m.setX(m.getX()-1); m.setDirection(m.getDirection()+1); m.setDirection(0); } } } } } } } } public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(Toolkit.getDefaultToolkit().getImage("Fond_ecran.jpg"),0-scroll,0,5850,600,this); // Fond d'écran for(int i=0;i<23;i++) { for(int j=0;j<100;j++) { g.drawImage(Toolkit.getDefaultToolkit().getImage(tabBloc[i][j].getImage()),25*j-scroll,25*i+25,25,25,this); } } for(int i=0;i<3;i++) { g.drawImage(Toolkit.getDefaultToolkit().getImage(tabMonstre[i].getImage()),25*tabMonstre[i].getY()-scroll,25*tabMonstre[i].getX()+25,25,50,this); } g.drawImage(Toolkit.getDefaultToolkit().getImage(p.getImage()),p.getX()-scroll,p.getY()+25,25,50,this); } }