como ya algunos saben no existe tal clase para J2SE solo J2ME
pero ami se me ocurrio como hacerla pero al probarla (osea realizar un mapa) no me funcionaba y todas las piezas estaban desordenadas
como no traje mi codigo voy a tratar de acordarme como lo escribi en mi casa
espero que alguien encuentre el problema
Código
bueno espero que puedan encontrar el problema y si por algun motivo me equivoque en ortografia no es mi culpa es culpa del eclipse que no alcanzo de escribir y me completa la frase
public class TiledLayer /*extends Layer*/{ //el aporte de la clase Layer es solo nombre a metodos private int map[]; //gran problema aqui int ancho = (int)(img.getWidth()/width);//tomo las cantidad de columnas int alto = (int)(img.getHeigth()/heigth);//tomo la cantida de filas //no me acuerdo bien de la constante que necesito //y aqui voy a hacer pedasos la imagen BufferedImage.INT_TYPE_ARGB //no se si ta bien escrita pero en mi casa sip lo está int posicion = 0; for(int i = 0;i<ancho;i++) for(int j = 0;j<alto;j++){ tiles[posicion] = img.getSubImage(i*width,j*heigth,width,heigth); posicion++; }//fin for i y j }// fin del constructor public void setMap(int map[]){ //gran problema aqui por copy paste this.map = map; for(int i = 0;i<map.length;i++){ int c = i % row; int r = (c - i) * column; setCell(r,c,i); }//fin for i }//fin del metodo public void setCell(int row, int column,int index){//problema aqui g.drawImage(tiles[index],row*heigth,column*width,null); }//fin del metodo }//fin de la clase
bueno pienso que hasta el momento el problema esta en el contructor
mañana si me acuerdo voy a colocar lo demas del codigo que creo que tambien tengo problema al setear correctamente el mapa
xauu
gracias
pd:
aqui tengo el code que hice
Código
mmm... que tristesa pero hoy a sido el peor día de mi vida
package egyware.empires.graphics; import java.awt.Graphics; import java.awt.image.BufferedImage; /** * @author Edgardo * */ public class TiledLayer /*extends Layer*/ { private int[] map; private int row,col; private int x,y; private int w,h; private boolean visible; int an = bi.getWidth()/w; int al = bi.getHeight()/h; this.row = row; this.col = c; this.h = h; this.w = w; int a = 0; for (int i = 0;i<an;i++) for (int j = 0;j<al;j++){ try { //System.out.println("r"+(j*h)+" "+w); //System.out.println("c"+(i*c)+" "+h); res[a] = bi.getSubimage(i*w,j*h,w,h); a++; }/**/ /*for (int i=0; i < an*al; i++) { int column = i % col; int brow = (i - column) / this.row; try{ res[i] = bi.getSubimage(column*w,brow*h,w,h); }catch(Exception e){ System.err.println(e.getMessage()); } } */ } } public void setMap(int[] map){ this.map = map; for (int i=0; i < map.length; i++) { int column = i % col; int row = (i - column) / this.row; //System.out.println(map[i]); setCell(column,row,map[i]); } } public int[] getMap(){ return map; } /* (non-Javadoc) * @see egyware.empires.graphics.Layer#getX() */ public int getX() { return x; } public void setCell(int c,int r,int i){ g.drawImage(res[i],c*w,r*h,null); } /*public int getCell(int c,int r){ return map[r][c]; }*/ public int getCellHeight(){ return h; } public int getCellWidth(){ return w; } public int getColumns(){ return col; } public int getRows(){ return row; } /* (non-Javadoc) * @see egyware.empires.graphics.Layer#getY() */ public int getY() { return y; } /* (non-Javadoc) * @see egyware.empires.graphics.Layer#setX(int) */ public void setX(int nx) { x = nx; } /* (non-Javadoc) * @see egyware.empires.graphics.Layer#setY(int) */ public void setY(int ny) { y = ny; } /* (non-Javadoc) * @see egyware.empires.graphics.Layer#paint(java.awt.Graphics) */ if(visible){ g.drawImage(tiledImage,x,y,null); /*int a = 0; for (int i = 0;i<col;i++) for (int j = 0;j<w;j++){ try { g.drawImage(res[a],x,y,null); a++; }catch(Exception e){ System.err.println(e.getMessage()); } }*/} } public boolean isVisible() { return visible; } public void setVisible(boolean b) { visible = b; } }