Я создал игру 800 * 600. Как я могу сделать так, чтобы он соответствовал всем экранам компьютеров? Как это обычно делается? Другие сайты также сказали, что все настроено на определенное соотношение, в зависимости от разрешения экрана. Но если каждое изображение в игре меняет размер по сравнению с разрешением экрана, это будет означать, что изображения не будут в правильных местах и вызывают другие проблемы. Можно ли просто «растянуть» мою игру 800 * 600, чтобы она соответствовала любому размеру? СпасибоКак сделать мою игру 800 * 600 подходящей для всех разрешений экрана?
ответ
Да, вы можете растянуть его. Сделайте основные компоненты Игр на JPanel, который составляет 800 на 600, и добавьте JPanel в JFrame. Затем игрок может изменить размер вашего JFrame, и компоненты не будут отображаться на экране, они изменят форму и размер на основе нового размера JFrame. Помните, что положение мыши по отношению к JFrame немного изменится, но разделите положение мыши на высоту/ширину JFrames и умножьте его на высоту/ширину JPanel, чтобы получить позицию относительно JPanel. С помощью этого метода вы можете позволить пользователю максимизировать свою игру и все еще иметь компоненты выглядят нормально.
Вам необходимо сделать разрешение игры независимым. Это означает, что вы создаете свою собственную концепцию «игровых единиц» (которая может быть точно такой же, как пиксели относительно экрана 800x600, если вы хотите), а затем работать исключительно на этих игровых устройствах.
Всякий раз, когда вы рисуете что-то на экране, вы конвертируете координаты и размеры игровых единиц в пиксели. Вам понадобятся функции, которые могут конвертировать оба способа, потому что вы также можете перевести клики-события с экрана на игровое пространство.
Когда вы начинаете свою игру, вам необходимо определить разрешение экрана и соотношение сторон. Если соотношение сторон не одинаковое (например,), вы можете выбрать либо растянуть зону игры, либо почтовый ящик. Перемещая весь код перевода на более низкий уровень и работая только в игровых единицах, вы сохраняете большую часть боли в долгосрочной перспективе.
Они посоветовали вам правильно, вы должны использовать соотношение, и ваши изображения должны соответственно изменить размер/положение. Если нет, вам нужно переосмыслить свою систему. – fonZ
Взгляните на полноэкранный эксклюзивный режим: http://docs.oracle.com/javase/tutorial/extra/fullscreen/exclusivemode.html – Aubin