Как Игроку обратиться к Карте в игре?

113
07 сентября 2019, 04:20

В игре отрисовка и логика столкновений должны работать за счет этой карты.

Отрисовка идет из класса Game, в котором и лежит эта карта, но мне также нужен к ней доступ из класса Player, как это реализовать? И появился смежный вопрос, как сделать одну общую переменную для нескольких классов?

Может как-то вынести это в глобальную переменную, как статик какого-то класса, но везде пишут, что глобальные переменные - это плохо, но как тогда это реализовывать без них?

P. S. Карта - это не которая встроенная в язык, а просто массив с "пикселями".

Answer 1

Глобальные переменные сами по себе не так плохи. Плохо то, что с ними связано - неясный жизненный цикл (кто создает и кто уничтожает), изменения (кто и как меняет их состояние), маскирование зависимостей и неудобство тестирования и пр. Для обычных игр, это все не так критично. Если у вас Карта одна и создается только Игрой и вы гарантируете, что никто ее не изменит неожиданным образом и она будет создана до Игрока и уничтожена после его уничтожения - то все ок - создавайте.

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

READ ALSO
Беспорядочное чтение нативных данных

Беспорядочное чтение нативных данных

Пишу класс, который будет считывать нажатые клавиши только при активном окне Хрома:

114
NonUniqueObjectException при сохранении или IllegalStateException: Error occurred while storing entity при мерже

NonUniqueObjectException при сохранении или IllegalStateException: Error occurred while storing entity при мерже

На работе большое энтерпрайз приложение на Java, если кратко ситуация такая, есть сущность ReportEdition в нём есть Report между ними связь

104
Фон блока в форме параллелограма

Фон блока в форме параллелограма

Нужно сделать фон в форме параллелограмма, как на этой картинке

113
WordPress:горизонтальная прокрутка DIV

WordPress:горизонтальная прокрутка DIV

Подскажите пожалуйста, есть ли какой-то плагин или простой способ без встраивания JS библиотек а-ля wowjs и различных слайдеров осуществить...

127