我正在创建一个简单的射击场类型游戏。我已经创建了一个鼠标运动侦听器,并正在使用它在鼠标的当前位置绘制图像。这很好用,但是当我移动光标时,图像会闪烁很多。我已经尝试了几个双缓冲教程,但是这些都不起作用。
这是我的代码
public class ShootingGallery extends JApplet implements MouseMotionListener {
//VARIABLES
int mouseXPos;
int mouseYPos;
Image myImage;
private Image dbImage;
private Graphics dbg;
@Override
public void init() {
setSize(800, 600);//SET UP CURSOR IMAGE
myImage = getImage(getDocumentBase(),"spongebob.gif");
addMouseMotionListener(this);//ADD ACTION LISTENERS
}
@Override
public void mouseDragged(MouseEvent e) {
moveMouse(e);
}
@Override
public void mouseMoved(MouseEvent e) {
moveMouse(e);
}
public void moveMouse(MouseEvent e){
Graphics g = getGraphics();
mouseXPos = e.getX() - (myImage.getWidth(null) / 2);
mouseYPos = e.getY() - (myImage.getHeight(null) / 2);
repaint();
}
public void paint(Graphics g)
{
super.paint(g);
g.drawImage(myImage, mouseXPos, mouseYPos, this);
}
}
非常感谢您对此问题的任何帮助