Я кодирую игру; что-то вроде этого: http://i.stack.imgur.com/HBrEE.pngКачающаяся графика в многопоточной программе
У меня есть класс с именем Canvas, который расширяет JLabel и переопределяет paintComponent()
, ставит изображение линий сетки в качестве фона, затем рисует игрока и препятствия (стены).
Используя createGraphics()
, я получаю объект Graphics2D. Мне нужно это, чтобы нарисовать оружие и пули из их классов. (Как вы видите, есть несколько видов оружия, которые снимают пули в определенные промежутки времени.)
Для реализации всех этих целей, используя SwingUtilities.invokeLater()
, я рисую линии сетки, игрока и стены в классе Canvas. Я думал создать нить за оружие и по одной на пулю; Я знаю, это чересчур, но поскольку я новичок в многопоточности, у меня нет других идей!
И еще одна проблема с объектом Graphics2D: мне нужно разделить этот объект между потоками, поэтому я подумал об использовании ключевого слова final
; но это невозможно, потому что значение объекта Graphics2D будет определено в paintComponent()
.
Заранее благодарим за любую помощь, которую вы можете предоставить.
Поэтому я должен сделать всю картину в одном потоке, и больше не нужно будет пропускать Graphics2D obejct; Большой! Благодаря! но что, если некоторые объекты, которые необходимо разделить между потоками и сделать их окончательными, невозможно? – Aura
Какой обмен вам нужен? Если вы используете истинный ООП, вам, скорее всего, нужно, чтобы ваши объекты были в лучшей форме. –