[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Java — масштабирование кадра игры
AlmazDelDiablo
Привет всем!
Насколько я знаю, у нас тут есть немало людей, программирующих не только на PHP, но и на других языках, поэтому решил создать тему именно на нашем родном форуме. Да и, наверное, данный вопрос больше по алгоритмике, а не конкретному языку.

Я сейчас в процессе написания небольшой 2D-игрушки на Java (метод отрисовки графики — стандартный класс Graphics2D), и вот с какой проблемой я столкнулся: нужно как-то масштабировать кадр игры под размер фрейма, в котором, собственно, вся игра и происходит.

Пробовал сделать это с помощью отрисовки всего кадра в BufferedImage и дальнейшем выведении кадра на экран, масштабированного под размер окна — совершенно кошмарная потеря качества, что, собственно неудивительно.

Второй вариант, который пришел в голову — найти 1/1000 от наименьшего размера фрейма (делитель 1000 я подобрал методом научного тыка) и все размеры, а также координаты объекта на сцене умножить на это самую 1/1000. В общем-то, это более-менее работает (судя по первым тестам), но получается страшненький говнокод — представляете себе на каждом шагу это N*MainFrame.ratio? Жуть.

Если кто-нибудь когда-нибудь сталкивался с подобной задачей — очень прошу помочь.

_____________
Блог | VK | GitHub | Twitch
Oyeme
Вот пример игры на java tower defence

http://www.youtube.com/watch?v=Euiqdd09n68

В первом уроке как раз рассказыватся о фреймах.
AlmazDelDiablo
Извините, что не отвечал — сидел без интернета.

За видео большое спасибо, сейчас посмотрю.

_____________
Блог | VK | GitHub | Twitch
AlmazDelDiablo
Видео, увы, не помогло.
Но решение я, кажется, нашел. Если кто-нибудь столкнется с подобной проблемой, вот материал для создания правильной векторной графики, которую можно легко масштабировать под размер окна (по ссылке описывает 3D-графика, но привести её к 2D не составляет больших сложностей): http://shatalov.su/ru/articles/math/transformation_1.php

_____________
Блог | VK | GitHub | Twitch
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.