2013-03-06 3 views
0

Я создал игру 800 * 600. Как я могу сделать так, чтобы он соответствовал всем экранам компьютеров? Как это обычно делается? Другие сайты также сказали, что все настроено на определенное соотношение, в зависимости от разрешения экрана. Но если каждое изображение в игре меняет размер по сравнению с разрешением экрана, это будет означать, что изображения не будут в правильных местах и ​​вызывают другие проблемы. Можно ли просто «растянуть» мою игру 800 * 600, чтобы она соответствовала любому размеру? СпасибоКак сделать мою игру 800 * 600 подходящей для всех разрешений экрана?

+1

Они посоветовали вам правильно, вы должны использовать соотношение, и ваши изображения должны соответственно изменить размер/положение. Если нет, вам нужно переосмыслить свою систему. – fonZ

+0

Взгляните на полноэкранный эксклюзивный режим: http://docs.oracle.com/javase/tutorial/extra/fullscreen/exclusivemode.html – Aubin

ответ

0

Да, вы можете растянуть его. Сделайте основные компоненты Игр на JPanel, который составляет 800 на 600, и добавьте JPanel в JFrame. Затем игрок может изменить размер вашего JFrame, и компоненты не будут отображаться на экране, они изменят форму и размер на основе нового размера JFrame. Помните, что положение мыши по отношению к JFrame немного изменится, но разделите положение мыши на высоту/ширину JFrames и умножьте его на высоту/ширину JPanel, чтобы получить позицию относительно JPanel. С помощью этого метода вы можете позволить пользователю максимизировать свою игру и все еще иметь компоненты выглядят нормально.

1

Вам необходимо сделать разрешение игры независимым. Это означает, что вы создаете свою собственную концепцию «игровых единиц» (которая может быть точно такой же, как пиксели относительно экрана 800x600, если вы хотите), а затем работать исключительно на этих игровых устройствах.

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

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