#java #graphics #buffer #bufferstrategy
#java #графика #буфер #bufferstrategy
Вопрос:
У меня есть следующий класс (фрагмент), и в моем render()
методе я использую буферизацию BufferStrategy
. Проблема, с которой я сталкиваюсь, заключается в том, что когда я перемещаю изображение, оно оставляет хвост.
Что мне нужно сделать с моим кодом, чтобы сделать так, чтобы хвост не отображался? Вот код:
public class Main extends JFrame implements Runnable{
private BufferStrategy bufferStrategy;
public synchronized void start(){
Thread thread = new Thread(this);
thread.start();
}
public void run(){
// Main Game Loop
this.render();
// End Main Game Loop
}
protected void render(){
if(bufferStrategy == null){
this.createBufferStrategy(3);
bufferStrategy = this.getBufferStrategy();
}
Graphics g = bufferStrategy.getDrawGraphics();
// Loop through a list of items to draw
for(GameObject go : gameObjects){
Image sprite = go.getComponent(SpriteRenderer.class).getSprite();
Vector2 pos = go.getComponent(Transform.class).getPosition();
g.drawImage(sprite, (int)pos.x, (int)pos.y, this);
}
g.dispose();
bufferStrategy.show();
Toolkit.getDefaultToolkit().sync();
}
}
Редактировать
Я понял это:
Graphics g = bufferStrategy.getDrawGraphics();
super.paint(g);
Ответ №1:
Вам нужно обновлять каждый раз, когда колесо перемещается, и перекрашивать холст в черный цвет, прежде чем снова рисовать положение колеса.