OK、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();
}
}
このコードが私のために行うことは、画像が正しく機能するようにすることです。ちらつきだけです。誰でも私の問題を解決できますか? 編集:ペイントメソッドでrepaintメソッドを呼び出す場所に関係があると思うので、そこを見てください。