|
2D-программирование Вопросы, касающиеся двумерного программирования |
19.10.2007, 19:07
|
#1
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Смена разрешения.
Здраствуйте господа форумчане! У меня такая проблема, в настройках игры в которой я занимаюсь GUI и т.д. будет возможность менять разрешение экрана. Но вот в чем проблема. Игра заточена под разрешение 1024*768 но как сделать что изображение скажем при разрешении 800*600 не заползало за экран, даже кнопок невидно. Я пробовал ScaleImage но ведь тогда придется каждую кнопку, каждый элемент меню скалить, и как мне кажется это весьма лагучая команда.
Вообщем в результате лазаний по инету я наткнулся на либу FastImage, она интерестна тем что в ее состав входит очень полезная команда SetProjScale которая как я понел скалить всю 2д проекцию. Но вот в чем проблема... я никак не могу ее заюзать. Не получается. В начале проги я подключаю файл FastImage.bb, есесно, а может и не правильно, я высываю файлы FastImage.dll и FastImage.decls в папку Блитца Userlibs.
Пишу в коде SetProjScale (.1,.1) просто для теста что бы посмотреть как пашет либа, и ничего не менятся. Изображение которое в проге показывается имеет разрешение 1024*768, разрешение проги 800*600.
Вообщем те кто пользовался FastImage помогите...
|
(Offline)
|
|
19.10.2007, 19:49
|
#2
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Re: Смена разрешения.
Во первых прочитай документацию к либе. Там все описано, какие команды чего делают. Во вторых ничего и не произойдет если просто впишешь в свою программу эту строку, так библа не инициализирована, и производит действия только над изображениями созданными функциями ее библиотеки, то есть если ты применяешь функции loadimage это не прокатит. Внимательно изучи примеры к библиотеке.
Значит по проблеме: используй команды Graphicswidth(), GraphicsHeight(), которые возвращают ширину и соответственно высоту экрана. Вот с помощью них и устанавливай картинки там где они должны быть, тогда им никакая смена разрешения не грозит, натипо этого:
DrawImage img_1, Graphicswidth()-100, Graphicsheight()*0.5, 0
|
(Offline)
|
|
20.10.2007, 17:01
|
#3
|
Модератор
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений (для 1,694 пользователей)
|
Re: Смена разрешения.
А кто-нибудь знаеат, как на bmax сменить расширение? допстим, все каринки под 1024х768 подстроены.. а как быть при мене расширения?
изменять размеры картинок? или иметь картинку каждую на своё расширение?
|
(Offline)
|
|
20.10.2007, 18:20
|
#4
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: Смена разрешения.
Если я не ошибаюсь, то чтобы подогнать под нужное разрешение, х-координату картинки нужно умножить на ширину текущего разрешения / ширина желаемого, у - координата аналогично.
|
(Offline)
|
|
20.10.2007, 20:05
|
#5
|
|
Re: Смена разрешения.
для етого на bmaxе делаем тип камеры, и там тупо меняем zoom
|
|
|
04.11.2007, 20:20
|
#6
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Смена разрешения.
Всем привет! Вот так я меняю разрешение игры, при разных разрешениях, изображение Resize-иться в определенной пропорции, примерно так ResizeImage fone,GrapX,GrapY где GrapX=GraphicsWidth (),GrapY=GraphicsHeight (). Все работает, но есть одно но, все это прилично долго грузиться - когда игра тока запускается или переходит из одного режима игры в другой (из меню в игру и обратно). И немного подлагивает.
У кого есть другие идеи решения сей насущной проблемы без ScaleImage и ResizeImage, так как эти команды как мне кажется весьма рессурсоемки.
Заранее спасибо за ответ.
|
(Offline)
|
|
04.11.2007, 23:23
|
#7
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: Смена разрешения.
FastImage
|
(Offline)
|
|
05.11.2007, 00:41
|
#8
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Смена разрешения.
А где можна взять подробные туториалы по FastImage-у... для чайников.
|
(Offline)
|
|
05.11.2007, 06:05
|
#9
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: Смена разрешения.
Их нету. Все как в блицмаксе, за исключением того, что библу надо проинициализировать.
|
(Offline)
|
|
05.11.2007, 22:14
|
#10
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Смена разрешения.
Жалко, придется путем научного тыка изучать FastImage так как с BMax-ом еще не сталкивался.
|
(Offline)
|
|
05.11.2007, 22:22
|
#11
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Смена разрешения.
Bagration, ну в ФастИмаг всё интуитивно понятно И примеры на все слачаи есть
|
(Offline)
|
|
05.11.2007, 23:58
|
#12
|
Знающий
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений (для 21 пользователей)
|
Re: Смена разрешения.
Я тока вот с маской разобраться немогу, кошмар просто как и куда вводить параметры маски? Хм, плиз дайте пример для FastImage c маской.
Заранее спасибо!
|
(Offline)
|
|
06.11.2007, 13:14
|
#13
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Смена разрешения.
Там же какраз вроде был пример.
Смотри функцию SetBlend там будет МаскедБленд - что-то типо этого.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:38.
|