В настоящее время я работаю над 2D-шутером с движущимся фоном. Фон — простое изображение. Я хочу реализовать, чтобы изображение бесконечно перемещалось сверху вниз.
Я подумал о том, чтобы определить часть изображения, которая находится внизу, за пределами видимой части кадра, и снова нарисовать ее сверху.
@Override
public void paint(Graphics go) {
Graphics2D g = (Graphics2D) go;
g.fillRect(0, 0, this.getWidth(), this.getHeight());
g.drawImage(this.imgBackground, 0, this.yBackground, this);
}
yBackground — это координата, по которой рисуется левый верхний угол изображения. Переделано из другой темы:
while (!this.paused) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
int y = this.display.getBackgroundY();
if (y == this.display.getHeight()) {
y = 0;
} else {
y++;
}
this.display.setBackgroundY(y);
}
Итак, вот мой вопрос: как я могу получить часть изображения, которая находится за пределами видимой части кадра?