Listo!!! ahora vamos al codigo explicado....
import java.awt.Color;
import
java.awt.Graphics;
import
java.awt.Graphics2D;
import
java.awt.Image;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import
java.awt.image.BufferStrategy;
import
java.io.IOException;
import
java.io.InputStream;
import
javax.imageio.ImageIO;
import
javax.swing.*;
public class Principal
extends JFrame implements Runnable {
Image []img;//declaramos
un vector de imagenes
Image fondo; //declaro
la imagen que sera el fondo
InputStream imgStream;
private
BufferStrategy estrategia;//llamo a la clase
int numeroImagen; //esta
variable controla que imagen mostrar
Timer timer1; //declaramos
nuestro Timer
public Principal()
{
super("Animacion
Interna Sprite");
this.setSize(600,
250);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.createBufferStrategy(2);
estrategia =
getBufferStrategy();
numeroImagen = 1;//inicio
la variable con la primera imagen
cargaImagen();
repaint();
run();
}
public void
cargaImagen(){
img = new Image[10];//inicializamos
el vector de tamaño 10
try {
imgStream = Principal.class.getResourceAsStream("images/fondo.jpg");//inicializo
la imagen de fondo
fondo = ImageIO.read(imgStream);
for(int i = 1 ; i
< 7; i++)//cargamos las imagenes en el
vector ojo mis imagenes se llamas 0.png,
1.png, etc
{
imgStream = Principal.class.getResourceAsStream("images/"+i+".png");
img[i] = ImageIO.read(imgStream);
}
} catch (IOException
e) {
// TODO
Auto-generated catch block
e.printStackTrace();
}
}
public void run() {
timer1 = new Timer(200,new
ActionListener() {
public void
actionPerformed(ActionEvent e) {
numeroImagen++;
if(numeroImagen == 7)
{
numeroImagen = 1;
}
}
});
timer1.start();
}
public static void main(String[]
arg)
{
new Principal();
}
public void
paint(Graphics g){
Graphics g3 = (Graphics2D)estrategia.getDrawGraphics();
g3.drawImage(fondo, 0, 0, 600,
250, null);
g3.drawImage(img[numeroImagen], 50, 80, 90,
156, null);
estrategia.show();
repaint();
}
}
|
Notas sobre el codigo:
Implements Runnable .- Se usa para crear una tarea dentro del programa para que este la realize consecutivamente este es en otras palabras el MAIN LOOP del juego!
Timer .- Es un bucle que se repite cada cierto tiempo en milisegundos en el caso de nuetro programa se repite cada 200 milisegundos.
Si tienes dudas de como cargar una imagen o para que sirve el BUFFER puedes visitar los anteriores Post...
Tambien puedes preguntar en la parte de Comentarios asi te respondo mas rapido
SUERTE!!!!
Hola, a estas alturas del post, has perdido el sprite #2 del personaje, por lo que renombré todas las sprites siguientes, así que solo me quedé con 5 sprites. De todas maneras, hay un blinking o parpadeo cuando el ciclo for se reinicia. ¿A qué se debe? Incluso con 1 sola sprite, ocurre este blinking. Saludos.
ResponderEliminarMuchas gracias por compartir algo que me tarde en encontrar. Saludos.
ResponderEliminarMuchas gracias por compartir algo que había estado buscando por mucho tiempo. Saludos.
ResponderEliminarMuchas gracias por compartir algo que había estado buscando por mucho tiempo. Saludos.
ResponderEliminarMuchas gracias por compartir algo que me tarde en encontrar. Saludos.
ResponderEliminarHola Chelobotix, Garcias por tu esfuerzo de documentar y compartir tu código, es bueno ser agradecido con las personas desinteresas que comparten como tú.
ResponderEliminaragradecido con el de arriba,pero el de mas arriba, con el todo poderoso vuelto mi socio también mi amigo.
ResponderEliminarStainless Steel Double-Edge Blades - Titanium-Arts.com
ResponderEliminarMore items Stainless Steel Double-Edge Blades - Titanium-Arts.com. More chi titanium flat irons products. Stainless Steel Double-Edge Blades - titanium automatic watch Stainless titanium dioxide skincare Steel Double-Edge ridge titanium wallet Blades - Titanium-Arts.com. More titan metal items. Stainless Steel Double-Edge Blades - Stainless Steel Double-Edge Blades - Stainless Rating: 5 · 1 review
why not check here dildo,sex toys,sex dolls,custom sex doll,japanese sex dolls,dildo,realistic dildo,japanese sex dolls,realistic dildo Web Site
ResponderEliminar