Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > FAQ

FAQ Туториалы и часто задаваемые вопросы

Ответ
 
Опции темы
Старый 18.06.2007, 17:14   #1
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
смена разрешения.

Написали вы например игру, и радосно понесли в массы, чтоб они ее заценили, и тут некоторые говорят: "Разрешение слишком мальенькое".
можно сделать возможность выбора разрешения и ладное если ето дело касается основной игры (нарисовать пру панелек и все), но овт когда дело дохоит до всяких меню, окон статистики, справки, about, и т.д. то менять все ето жутко влом.
вот пример как обойти сию неприятность:
Global ark_blur_image_, ark_blur_texture_, ark_sw_, ark_sh_
Global BQuality_=1024

If hightresolution
	Graphics3D 1024,768,32,1

	cam=CreateCamera()

	CameraClsMode cam, 0, 0
	CameraRange cam, 0.1, 1.5
	MoveEntity cam, 0, 0, 10000

	ark_sw_ = GraphicsWidth()
	ark_sh_ = GraphicsHeight()
	
	
	;Create sprite
	Local spr = CreateMesh(cam)
	Local sf = CreateSurface(spr)
	AddVertex sf, -1, 1, 0, 0, 0
	AddVertex sf, 1, 1, 0, 1, 0
	AddVertex sf, -1, -1, 0, 0, 1
	AddVertex sf, 1, -1, 0, 1, 1
	AddTriangle sf, 0, 1, 2
	AddTriangle sf, 3, 2, 1
	EntityFX spr, 17+4
	ScaleEntity spr, Float(1024) / Float(800), Float(768) / Float(600), 1
	PositionEntity spr, 0.28, -0.53,1.0
	EntityOrder spr, -100000
	ark_blur_image_ = spr
	
	;Create blur texture
	ark_blur_texture_ = CreateTexture(800, 600, 256)
	EntityTexture spr, ark_blur_texture_
	
Else
	Graphics3D 800,600,32,1
EndIf

Function RenderResolutionQuad()	
	CopyRect  0,0,800,600, 0, 0, BackBuffer(), TextureBuffer(ark_blur_texture_)	
	RenderWorld
End Function


While Not KeyDown(1)
Cls
Color 128,0,0
Rect 0,0,800,600,0
Color 192,192,192
Rect 10,10,780,580,0
Color 0,100,244
For i=40 To 760 Step 40
	Line i,100,i,500
Next

If MouseX()>800 Then MoveMouse 800,MouseY()
If MouseY()>600 Then MoveMouse MouseX(),600
Oval MouseX()-3,MouseY()-3,7,7,0

	If hightresolution Then RenderResolutionQuad()
	Flip
Wend
, правда ето заточено на изминение разрешения с 800х600 на 1024х768, ну думаю вы догадаетесь какие цыфирки надо поменять.
(Offline)
 
Ответить с цитированием
Старый 30.07.2007, 23:10   #2
Crystal
Терабайт исходников
 
Аватар для Crystal
 
Регистрация: 05.07.2007
Сообщений: 5,196
Написано 1,721 полезных сообщений
(для 5,374 пользователей)
Re: смена разрешения.

Чтото я не совсем понял что там в примере происходит...
Это что запускается в 1024 режиме и меняется на 800 сразу?
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 20:43   #3
AndruXa
Знающий
 
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений
(для 8 пользователей)
Re: смена разрешения.

А что разве так разрешение нельзя менять, веть гораздо проще
Global a=1024
Global b=768
Graphics3D,a,b,32,1
...
...
...
Repeat
if ...
a=800
b=600
endif
...
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 20:47   #4
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Re: смена разрешения.

так не выйдет...
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 20:57   #5
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: смена разрешения.

ark_blur_texture_ = CreateTexture(800, 600, 256)
ХолиДел, какие тебе текстуры 800х600 и 1024х768? 0_о
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 21:20   #6
AndruXa
Знающий
 
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений
(для 8 пользователей)
Re: смена разрешения.

так не выйдет...
Ну в принципе я согласен, что именно так не получится, но посидев, поэкспериментировав с глобалом и поменяв некоторые строчки местами по-идее должно получиться
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 21:29   #7
Bagration
Знающий
 
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений
(для 21 пользователей)
Re: смена разрешения.

Сообщение от AndruXa
Ну в принципе я согласен, что именно так не получится, но посидев, поэкспериментировав с глобалом и поменяв некоторые строчки местами по-идее должно получиться
Причем тут глобальные переменные? Всё медия просто не будет подстраиваться под нужное разрешение, пока ты сам его не настроишь.
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 21:30   #8
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Re: смена разрешения.

Global GW:Float, GH:Float
Global Width:Float=1024, Height:Float=768

GW = Width / 1024
GH = Height / 768
Graphics Width , Height
а потом все рендере всех изображение (не самих х и у положения рисунков, а именно при drawimage ) умонжаем x и y на GW и GH. чтобы размер был тоже нормальным, нужно еще и SetScale (в блитз3д другое) изменять так же, умнжоать на GW и GH.

В данном случае будет GW и GH = 1. А если сделать нужное расширение больше, то значение будут другие. Я подстраиваю игру под 1024х768. но потом с помощью GH и GW изменяю как надо.
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 23:25   #9
FrankH
Разработчик
 
Регистрация: 09.12.2007
Сообщений: 376
Написано 83 полезных сообщений
(для 122 пользователей)
Плохо Re: смена разрешения.

А по мне так правильнее делать меню заведомо приспособленное к смене разрешений, хоть и сторонник.. эм.. нестандартных решений.
Вот был бы облом, если бы в винде панель задач и ярлыки всегда были как при 640х480
А насчет размера текстур, это прикол.
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 23:29   #10
AndruXa
Знающий
 
Регистрация: 10.09.2007
Сообщений: 262
Написано 6 полезных сообщений
(для 8 пользователей)
Re: смена разрешения.

Вот был бы облом, если бы в винде панель задач и ярлыки всегда были как при 640х480
Ниче, привыкли бы,как и ко многому другому. Можно со счету сбиться скольго багов мы винде простили, а казалось бы не за что, ну вот приглянулась виндовс России можно даже сказать с первого взгляда
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 23:30   #11
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: смена разрешения.

Дипломат, они вроде сами до степени двойки расширяются.

FrankH, естественно правельнее. если писать такую систему с нуля. а если уже написно 100к кода на конкретное разрешение, то все переписывать будет лениво.

Почему приглянулся Виндоус? а где ты еще найдеш опреационку за 5$ ? )))
(Offline)
 
Ответить с цитированием
Старый 18.12.2007, 23:40   #12
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: смена разрешения.

они вроде сами до степени двойки расширяются.
Иногда. Если повезет с видеокартой.
А если не повезет?
Да и разве не логичней самому выбрать подходящую степень двойки и производить все расчёты изначально с ней, а не с некими абстрактными и непонятными для текстуры цифрами "800" и "600"?
(Offline)
 
Ответить с цитированием
Старый 19.12.2007, 04:03   #13
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Re: смена разрешения.

Для 3д ничего делать не нужно.
А 2д оч просто подстраивется множителем (например k_img#=1024/GraphicsWidth() )
Множитель на рескейл картинки после загрузки и на позицию при перерисовке.
__________________
(Offline)
 
Ответить с цитированием
Старый 19.12.2007, 09:37   #14
НУБ
Бывалый
 
Регистрация: 22.09.2005
Сообщений: 634
Написано 36 полезных сообщений
(для 102 пользователей)
Re: смена разрешения.

Ну если создавать через CreateTextureRT(800, 600), то можно юзать любые разрешения и всё будет работать(правда, на счёт совсем старых видюх не уверен)
(Offline)
 
Ответить с цитированием
Старый 19.12.2007, 14:55   #15
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Re: смена разрешения.

2 all:
а что layout manager написать религия не позволяет?
2 НУБ:
колись, где брать хелп на новые функции Блица, а то офф доки отстают на 15 апдейтов.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор разрешения в меню! Unodeya 3D-программирование 3 19.05.2009 11:33
смена разрешения NoNsense 3D-программирование 21 10.08.2008 10:19
изменение разрешения и загруженые ресурсы jimon 2D-программирование 5 13.11.2007 01:09
Смена разрешения. Bagration 2D-программирование 12 06.11.2007 13:14
Смена дня и ночи haedim 3D-программирование 18 30.10.2006 22:23


Часовой пояс GMT +4, время: 18:58.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com