elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  TiledLayer, para J2SE???
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: TiledLayer, para J2SE???  (Leído 1,851 veces)
egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
TiledLayer, para J2SE???
« en: 27 Diciembre 2007, 17:27 pm »

hola a todos ::)
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
  1. public class TiledLayer /*extends Layer*/{
  2. //el aporte de la clase Layer es solo nombre a metodos
  3. private BufferedImage tiles[];
  4. private BufferedImage new;
  5. private int map[];
  6. //gran problema aqui
  7. public TilesLayer(int row,int column,BufferedImage img, int width,int heigth){
  8. int ancho =  (int)(img.getWidth()/width);//tomo las cantidad de columnas
  9. int alto =  (int)(img.getHeigth()/heigth);//tomo la cantida de filas
  10. tiles = new BufferedImage[ancho*alto];/*defino mi array de imagenes por la cantidad que necesito*/
  11. new = BufferedImage(row*heigth,column*width,BufferedImage.INT_TYPE_ARGB);
  12. //no me acuerdo bien de la constante que necesito
  13. //y aqui voy a hacer pedasos la imagen BufferedImage.INT_TYPE_ARGB
  14. //no se si ta bien escrita pero en mi casa sip lo está
  15. int posicion = 0;
  16. for(int i = 0;i<ancho;i++)
  17. for(int j = 0;j<alto;j++){
  18. tiles[posicion] = img.getSubImage(i*width,j*heigth,width,heigth);
  19. posicion++;
  20. }//fin for i y j
  21. }// fin del constructor
  22. public void setMap(int map[]){ //gran problema aqui por copy paste
  23. this.map = map;
  24. for(int i = 0;i<map.length;i++){
  25. int c = i % row;
  26. int r = (c - i) * column;
  27. setCell(r,c,i);
  28. }//fin for i
  29. }//fin del metodo
  30. public void setCell(int row, int column,int index){//problema aqui
  31. Graphics g = new.getGraphics();
  32. g.drawImage(tiles[index],row*heigth,column*width,null);
  33. }//fin del metodo
  34. }//fin de la clase
  35.  
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  :P
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
  1. package egyware.empires.graphics;
  2.  
  3. import java.awt.Graphics;
  4. import java.awt.image.BufferedImage;
  5. /**
  6.  * @author Edgardo
  7.  *
  8.  */
  9. public class TiledLayer /*extends Layer*/ {
  10. private int[] map;
  11. private BufferedImage[]res;
  12. private BufferedImage tiledImage;
  13. private int row,col;
  14. private int x,y;
  15. private int w,h;
  16. private boolean visible;
  17. public TiledLayer(int row, int c,BufferedImage bi,int w,int h){
  18. int an = bi.getWidth()/w;
  19. int al = bi.getHeight()/h;
  20. this.res = new BufferedImage[(an*al)];
  21. this.row = row;
  22. this.col = c;
  23. this.h = h;
  24. this.w = w;
  25. int a = 0;
  26. tiledImage = new BufferedImage(col*w,row*h,BufferedImage.TYPE_INT_ARGB);
  27. for (int i = 0;i<an;i++)
  28. for (int j = 0;j<al;j++){
  29. try {
  30. //System.out.println("r"+(j*h)+" "+w);
  31. //System.out.println("c"+(i*c)+" "+h);
  32. res[a] = bi.getSubimage(i*w,j*h,w,h);
  33.  
  34.  
  35. a++;
  36. }catch(Exception e){
  37. System.err.println(e.getMessage());
  38. }/**/
  39. /*for (int i=0; i < an*al; i++) {
  40.      int column = i % col;
  41.      int brow = (i - column) / this.row;
  42.      try{
  43.      res[i] = bi.getSubimage(column*w,brow*h,w,h);
  44.      }catch(Exception e){
  45. System.err.println(e.getMessage());
  46. }
  47.    }  */    
  48. }
  49.  
  50. }
  51. public void setMap(int[] map){
  52. this.map = map;
  53. for (int i=0; i < map.length; i++) {
  54.      int column = i % col;
  55.      int row = (i - column) / this.row;
  56.      //System.out.println(map[i]);
  57.      setCell(column,row,map[i]);
  58.    }      
  59.  
  60. }
  61. public int[] getMap(){
  62. return map;
  63. }
  64. /* (non-Javadoc)
  65. * @see egyware.empires.graphics.Layer#getX()
  66. */
  67. public int getX() {
  68. return x;
  69. }
  70. public void setCell(int c,int r,int i){
  71. Graphics g = tiledImage.getGraphics();
  72. g.drawImage(res[i],c*w,r*h,null);
  73. }
  74. /*public int getCell(int c,int r){
  75. return map[r][c];
  76. }*/
  77. public int getCellHeight(){
  78. return h;
  79. }
  80. public int getCellWidth(){
  81. return w;
  82. }
  83. public int getColumns(){
  84. return col;
  85. }
  86. public int getRows(){
  87. return row;
  88. }
  89. /* (non-Javadoc)
  90. * @see egyware.empires.graphics.Layer#getY()
  91. */
  92. public int getY() {
  93. return y;
  94. }
  95.  
  96. /* (non-Javadoc)
  97. * @see egyware.empires.graphics.Layer#setX(int)
  98. */
  99. public void setX(int nx) {
  100. x = nx;
  101. }
  102.  
  103. /* (non-Javadoc)
  104. * @see egyware.empires.graphics.Layer#setY(int)
  105. */
  106. public void setY(int ny) {
  107. y = ny;
  108. }
  109.  
  110. /* (non-Javadoc)
  111. * @see egyware.empires.graphics.Layer#paint(java.awt.Graphics)
  112. */
  113. public void paint(Graphics g) {
  114. if(visible){
  115. g.drawImage(tiledImage,x,y,null);
  116. /*int a = 0;
  117. for (int i = 0;i<col;i++)
  118. for (int j = 0;j<w;j++){
  119. try {
  120. g.drawImage(res[a],x,y,null);
  121. a++;
  122. }catch(Exception e){
  123. System.err.println(e.getMessage());
  124. }
  125. }*/}
  126.  
  127. }
  128. public boolean isVisible() {
  129. return visible;
  130. }
  131. public void setVisible(boolean b) {
  132. visible = b;
  133.  
  134. }
  135.  
  136. }
  137.  
mmm... que tristesa pero hoy a sido el peor día de mi vida  :-( :-( :-( :-X


« Última modificación: 28 Diciembre 2007, 14:47 pm por egyware » En línea

egyware


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: TiledLayer, para J2SE???
« Respuesta #1 en: 14 Enero 2008, 17:55 pm »

mmm veo que nadie ha encontrado mi problema  :( a que tristeza tengo bueno tratare de arreglarlo

PD:jijijij jajaja
ya lo tengo casi listo jijiji
realize un estudio a fondo solo me queda cambiar el source
jajajaaj ;D ::)


« Última modificación: 16 Enero 2008, 16:25 pm por egyware » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines