Actualizando el 03/05/2012… Agregue el código fuente que ya desapareció de la web
http://www.planetalia.com/cursos/
Y llegamos al capitulo final de este tutorial, con las optimizaciones que se le hace a las imagenes, el raton y los FPS, tratare de explicar que es lo que hace
SpriteCache.java
public BufferedImage createCompatible(int width, int height, int transparency) { GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();//gc va a ser = a las caracteristicas del monitor BufferedImage compatible = gc.createCompatibleImage(width,height,transparency);//le indicamos tamaño y transparencia return compatible; } public BufferedImage getSprite(String name) { BufferedImage loaded = (BufferedImage)getResource("imagenes",name); BufferedImage compatible = createCompatible(loaded.getWidth(),loaded.getHeight(),Transparency.BITMASK); //Crea una imagen que soporta pixels transparentes Graphics g = compatible.getGraphics(); g.drawImage(loaded,0,0,this); return compatible; }
La sgte optimizacion trata del background, en pocas palabras crearemos 2 background, uno arriba del otro y los iremos desplazando cada vez
invaders.java
backgroundTile = spriteCache.getSprite("oceano.gif"); background = spriteCache.createCompatible(Stage.WIDTH, Stage.HEIGHT + backgroundTile.getHeight(), Transparency.OPAQUE);//creamos una imagen con el alto d pantalla + el alto de oceano.gif y que no soporte transparencia Graphics2D g = (Graphics2D)background.getGraphics(); g.setPaint( new TexturePaint( backgroundTile, new Rectangle(0,0,backgroundTile.getWidth(),backgroundTile.getHeight())));//creamos el background normal g.fillRect(0,0,background.getWidth(),background.getHeight()); backgroundY = backgroundTile.getHeight(); g.drawImage( background,0,0,Stage.WIDTH,Stage.HEIGHT,0,backgroundY,Stage.WIDTH,backgroundY+Stage.HEIGHT,this); //Esto es un poco complicado si ven al api me entendera como funciona, pero mas o menos quedaria asi (0,0,600,400,0,256,400,856) do { Thread.yield();// que espere hasta que currentTimeMillis()-startTime< 17 } while (System.currentTimeMillis()-startTime< 17);
The End ;D
Ahora prosigamos con el libro que nos ayudara mejorar en mucho este codigo
Código Fuente (Para ver todo el codigo fuente del juego haz click en la siguiente página… no en el siguiente post ¬¬)
Los Recursos (Sonidos y Gráficos, están en la última página)
amgo no encuentro el codigo!
Hola lan, el codigo está en las siguientes paginas, debajo de donde dice me gusta, donde dice “Se el primero en decir que te gusta”
Suerte!
[…] Actualizo el 03/05/2012… Ufff Cuanto tiempo estuve revisando los links y al parecer planetalia ya no pone el curso así que decidí postear el código fuente, este código no tiene ninguna explicación, solo es el código que encontré entre mis carpetas de muuuuuucho tiempo. Me imagino que ahora hay muchos mejores tutoriales, pero igual lo posteo para cualquier referencia, el código esta acá […]