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;
}
}
}
Bonsoir, Désolé excuse moi c'est un copier collé sur un commentaire de ma part
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.