好的,所以我现在正在编写一个游戏来为 Ludum Dare SharkJam 做准备,并且我正在使用一种新的编程方法,因为最后一种方法使我的 PC 崩溃了,所以这个应该可以工作。好吧,它确实有效,而且一切都更好,但是我放入其中的图像会闪烁。这是整个主类(绘制图像的地方)包me.NoahCagle.watermaze;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import me.NoahCagle.watermaze.entity.EntityShark;
import me.NoahCagle.watermaze.entity.Player;
import me.NoahCagle.watermaze.input.Keys;
import me.NoahCagle.watermaze.map.Map;
public class Game extends JFrame {
private static final long serialVersionUID = 1L;
Map map = new Map(0, 0);
Player player = new Player(50, 30);
static EntityShark shark = new EntityShark(400, 400);
public Image dbImage;
public Game() {
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
setTitle("Water Maze");
setResizable(false);
setBackground(Color.blue);
addKeyListener(new Keys());
}
public static void main(String[] args) {
new Game();
Thread s = new Thread(shark);
s.start();
}
public void paint(Graphics g) {
dbImage = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
g.drawImage(dbImage, map.x, map.y, null);
g.drawImage(player.player, player.x, player.y, this);
g.drawImage(shark.shark, shark.x, shark.y, this);
repaint();
}
}
这段代码对我的作用是使图像正常工作,只是闪烁很多。谁能帮我解决我的问题?编辑:我认为这与我在paint方法中调用repaint方法的位置有关,所以看看那里。