При перемещении спрайта через JFrame след [дубликат]

3
задан Tim Cooper 15 December 2011 в 01:47
поделиться

2 ответа

Uncomment super.paint (g) [строка 87] в вашем методе рисования.

Он отвечает за очистку холста от любых устаревших объектов.

1
ответ дан Justin Jasmann 24 August 2018 в 03:27
поделиться

Причина в том, что в строке g.fillRect(0,0,WIDTH,HEIGHT); она фактически ссылается на java.awt.image.ImageObserver#WIDTH и java.awt.image.ImageObserver#HEIGHT вместо ваших переменных экземпляра. Вы можете увидеть это с помощью любой IDE.

Из-за этого ожидаемый черный фон нарисован только в области 1x2 пикселей в верхнем левом углу. И поскольку комментарий к super.paint(g); закомментирован, даже серый фон не перекрашен. В результате старые чертежи автомобиля не перегружены.

Код нужно изменить, чтобы использовать MAP.this.WIDTH, или поле WIDTH необходимо переименовать в то, что не конфликтует с поля, унаследованные от JPanel, или поле должно быть перемещено в тот же JPanel, чтобы иметь более высокий приоритет, или вы также можете использовать метод getWidth() из JPanel. А также для высоты.

1
ответ дан Esko Luontola 24 August 2018 в 03:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: