Dzień dobry!
package gramy;
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.net.URL;
import java.util.HashMap;
import javax.imageio.ImageIO;
import javax.swing.Timer;
public class AdditionalGamePicture extends Canvas implements ActionListener{
public static int x = 350,y = 80 ,velocityX = 1 , velocityY =1 ;
public static Image monster ,player ;
public HashMap sprites ;
Timer timer = new Timer(10,new ActionListener(){
public void actionPerformed(ActionEvent evt){
if(x>1185) velocityX = -velocityX ;
if(x<300) velocityX = -velocityX ;
if(y>585) velocityY = -velocityY ;
if(y<50) velocityY = -velocityY ;
x += velocityX;
y += velocityY;
repaint();
}
});
public void actionPerformed(ActionEvent e){
Object source = e.getSource();
if(source == AdditionalGameSource.button){
}
};
public AdditionalGamePicture(){
sprites = new HashMap();
timer.start();
setBounds(1,1,Stage.WIDTH,Stage.HEIGHT);
setVisible(true);
}
public void paint(Graphics g){
drawAll(g);
}
public void drawAll(Graphics g){
drawMonster(g);
drawPlayer(g);
// drawBoard(g);
}
public void drawMonster(Graphics g ){
g.drawImage(getSprite("obcy.gif"), x , y, this);
}
public void drawPlayer(Graphics g ){
g.drawImage(getSprite("statek.gif"), 1000 , 300, this);
}
public void drawBoard(Graphics g){
g.drawLine(300,50, 1200, 50);
g.drawLine(1200,50, 1200, 600);
g.drawLine(1200,600, 300, 600);
g.drawLine(300,600, 300, 50);
}
public BufferedImage loadImage(String sciezka) {
URL url=null;
try {
url = getClass().getClassLoader().getResource(sciezka);
return ImageIO.read(url);
} catch (Exception e) {
System.out.println("error 0002"+ sciezka);
System.exit(0);
return null;
}
}
public BufferedImage getSprite(String sciezka) {
BufferedImage img = (BufferedImage)sprites.get(sciezka);
if (img == null) {
img = loadImage(sciezka);
sprites.put(sciezka,img);
}
return img;
}
}
Oto mój kod który wyświetla na ekranie latającą piłeczkę. Niestety ona strasznie miga- starałem sie w tym kodzie zastosować podwójne bufforowanie niestety ono nie działa mogły ktoś wskazać mi błąd ?