Partage
  • Partager sur Facebook
  • Partager sur Twitter

Editeur de Map

    21 novembre 2014 à 1:41:37

    J'en ai fais un , mais je vous explique:

    La classe EditeurDeMapPanel me permet de créer mes maps et de les sauvegarder et les enregistrés dans un fichier texte . Seulement la toute les images sont de meme hauteur et largeur . Seulement imaginons que je prends une image 100 x 100 comment je peux faire pour que l'image soit décomposé sur plusieurs cases vu la taille de l'image. En fait je ne sais pas du tout comment sa marche si c'est cela



    public class EditeurDeMapPanel extends JPanel implements MouseListener, KeyListener,  MouseMotionListener {
     
     
    	String ImageSelectionne[] =  {"HERBE","CHEMIN","REGENERATION","ARENE","DRESSEUR"};
    	String Editeur[][]= new String[20][20];
     
    	// Px et Py sont les positions de l'image sur la map
    	int Px;
    	int Py;
    	int indexIncremental = 0;
    	Image Herbe;
    	Image Chemin;
    	Image Regeneration;
    	Image Arene;
    	Image Dresseur;
    	FileWriter filew; 
    	String ImageCourante = "HERBE";
    	FileReader filer;
     
    	//On récupére le chemin d'accès de toute les images
    	public EditeurDeMapPanel(){
     
     
     
    		ImageIcon herbe = new ImageIcon("images/herbe.jpg");
    		Herbe= herbe.getImage();
     
    		ImageIcon chemin = new ImageIcon("images/chemin.jpg");
    		Chemin= chemin.getImage();
     
    		ImageIcon regeneration = new ImageIcon("images/ipcentre.gif");
    		Regeneration = regeneration.getImage();
     
    		ImageIcon arene = new ImageIcon("images/arène.gif");
    		Arene = arene.getImage();
     
    		ImageIcon dresseur = new ImageIcon("images/water.png");
    		Dresseur= dresseur.getImage();
     
    		setFocusable(true);
    		addMouseListener(this);
    		addKeyListener(this);
    		addMouseMotionListener(this);
     
     
    	}
     
    	//Methode qui va nous permettre de peindre les images
    	public void paint(Graphics g){
    		super.paint(g);
    		Graphics2D graphics2d = (Graphics2D) g;
     
     
    		for(int i=0;i<=19;i++){
    			for(int j=0;j<=19;j++){
    				if(Editeur[i][j] == "HERBE"){
    					graphics2d.drawImage(Herbe, i*25,j*25, null);
     
    				}
    				if(Editeur[i][j] == "CHEMIN"){
    					graphics2d.drawImage(Chemin, i*25,j*25, null);
     
    			}
    				if(Editeur[i][j] == "REGENERATION"){
    					graphics2d.drawImage(Regeneration, i*25,j*25, null);
    		}
    				if(Editeur[i][j] == "ARENE"){
    					graphics2d.drawImage(Arene, i*25,j*25, null);
     
    	}
    				if(Editeur[i][j] == "DRESSEUR"){
    					graphics2d.drawImage(Dresseur, i*25,j*25, null);
    				}
    			}
    		}
    		if(ImageCourante == "HERBE"){
    			graphics2d.drawImage(Herbe, Px, Py, null);
    		}
    		else if(ImageCourante == "CHEMIN"){
    			graphics2d.drawImage(Chemin, Px, Py, null);
    		}
    		else if(ImageCourante == "REGENERATION"){
    			graphics2d.drawImage(Regeneration, Px, Py, null);
    		}
    		else if(ImageCourante == "ARENE"){
    			graphics2d.drawImage(Arene, Px, Py, null);
    		}
    		else if(ImageCourante == "DRESSEUR"){
    			graphics2d.drawImage(Dresseur, Px, Py, null);
    		}
     
    	}
     
     
    	@Override
    	public void mouseDragged(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
    	//Methode pour centrer le curseur sur l'image
    	public void mouseMoved(MouseEvent arg0) {
    		Px= arg0.getX()- 13;
    		Py=arg0.getY()- 13;
     
    		repaint();
    	}
     
     
     
    	@Override
    	public void keyPressed(KeyEvent arg0) {
    		char key = arg0.getKeyChar();
     
     
    			System.out.println(key);
    		}
     
     
     
     
    	@Override
    	public void keyReleased(KeyEvent arg0) {
    		char key = arg0.getKeyChar();
    		int key1 = arg0.getKeyCode();
     
    		if(key1 == KeyEvent.VK_DOWN){
    			if(indexIncremental>0){
    				indexIncremental--;
    			}
    			if(indexIncremental == 0){
    				indexIncremental = 4;
    		}
    		}
    		else if(key1 == KeyEvent.VK_UP){
    			if(indexIncremental<5){
    				indexIncremental++;
     
    			}
    			if(indexIncremental == 5){
    				indexIncremental = 0;
    			}
    		}
    		ImageCourante = ImageSelectionne[indexIncremental];
     
     
    		if(key == 's'){
    			try{
    				filew= new FileWriter(JOptionPane.showInputDialog(null,"Entrer le chemin de sauvegarde:","Editeur de Map",JOptionPane.QUESTION_MESSAGE));
    				for (int i=0;i<20;i++){
    					for (int j=0;j<20;j++){
     
    					if(Editeur[j][i] == "HERBE"){
    						filew.write("0");
    					}
    					else if(Editeur[j][i] == "CHEMIN"){
    						filew.write("1");
    					}
    					else if(Editeur[j][i] == "REGENERATION"){
    						filew.write("2");
    					}
    					else if(Editeur[j][i] == "ARENE"){
    						filew.write("3");
    					}
    					else if(Editeur[j][i] == "DRESSEUR"){
    						filew.write("D");
    					}
    					else if(Editeur[j][i] == null){
    						filew.write(" ");
    					}
    					}
    					filew.write("\r\n");
    			}
     
    			filew.close();
    				}
     
    			 catch(Exception h){
    			 }
    		}  else if(key == 'd'){
    			try{
    				filer = new FileReader(JOptionPane.showInputDialog(null,"Entrer le chemin de lecture:","Editeur de Map",JOptionPane.QUESTION_MESSAGE));
    				int i=0;
    				int x=0;
    				int y=0;
     
    			while((i = filer.read()) != -1){
    				char strImg = (char) i;
     
    				if(strImg == '0'){
    					Editeur[x][y] = "HERBE";
    				}
    				else if(strImg == '1'){
    					Editeur[x][y] = "CHEMIN";
    				}
    				else if(strImg == '2'){
    					Editeur[x][y] = "REGENERATION";
    				}
    				else if(strImg == '3'){
    					Editeur[x][y] = "ARENE";
    				}
    				else if(strImg == 'D'){
    					Editeur[x][y] = "DRESSEUR";
    				}
    				else if(strImg == ' '){
    					Editeur[x][y] = null;
    				}
     
    				// Sinon on depasse le tableau, on passe à la ligne suivante
    				else if(strImg == '\r' || strImg == '\n'){
    					x--;
    				}
     
    				if(x == 19){
    					y++;
    					x=0;
    				}
    				else{
    					x++;
    				}
     
    				}
    			}
    			catch(Exception ex){}
    		}
     
    			repaint();
    			}
     
     
     
     
     
     
     
    	@Override
    	public void keyTyped(KeyEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
    	@Override
    	public void mouseClicked(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
    	@Override
    	public void mouseEntered(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
    	@Override
    	public void mouseExited(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
    	@Override
    	public void mousePressed(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
    	//Methode pour poser l'image
    	public void mouseReleased(MouseEvent arg0) {
    		int x= arg0.getX()/25;
    		int y = arg0.getY()/25;
     
    		if(arg0.getButton()==MouseEvent.BUTTON1){
    			Editeur[x][y]= ImageCourante;
    		}
    		else if(arg0.getButton()==MouseEvent.BUTTON3){
    			Editeur[x][y] = null;
    		}
    	}
     
    }



    • Partager sur Facebook
    • Partager sur Twitter
      21 novembre 2014 à 1:42:43

      Bonsoir, Désolé excuse moi c'est un copier collé sur un commentaire de ma part
      • Partager sur Facebook
      • Partager sur Twitter

      Editeur de Map

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown