Рисование чего-либо перед любым другим объектом / рисунком - PullRequest
0 голосов
/ 11 апреля 2011

Я делаю небольшую игру, и мне нужна дополнительная помощь с ней.Я хочу сделать так, чтобы, если Player1 и Player2 закончили, белый экран всплывал по всему экрану перед любым объектом или сделанным рисунком.В данный момент я использую это как код:

if( isFinishedP1 == true && isFinishedP2 == true ){
        Graphics2D b = buffer.createGraphics();
        System.out.println("Both are finished, drawing WhiteScreen!");
        b.setColor( Color.WHITE );
        b.fillRect(0, 0, 800, 600);
        b.dispose();
}

Моя консоль говорит, что они оба закончили, но не будет рисовать белый экран.Я ничего не вижу, и у меня есть подозрения, что он рисует позади фона и объектов.Я помещаю белый экран, который на самом деле является прямоугольником, в (0,0) (координаты x и y соответственно), и мое окно имеет размер 800x600 (ширина x высота).

Как рисовать прямоугольники переддругого объекта, или есть лучший способ сделать это?Цель белого экрана - действовать как «экран эндшпиля», где вы можете выбрать, хотите ли вы сделать это снова или перейти на следующий уровень.Нет ошибок при выполнении этого кода.

Ответы [ 2 ]

1 голос
/ 11 апреля 2011

Вот для чего нужна GlassPane.

JComponent glass = myframe.getGlassPane();
glass.setOpaque(true);
glass.setBackground(Color.WHITE);
glass.setVisible(true);
0 голосов
/ 11 апреля 2011

В коде, который вы показываете, вы просто рисуете в некоторый буфер без указания, откуда он и куда он идет.

В общем случае вы должны переписать метод рисования, и если вы нарисуете белый прямоугольник после всего остального, он будет выглядеть так, как будто он находится поверх всего остального.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...