смена разрешения
Такой вопрос -
если в программе снова вызвать bbGraphics3D() с новыми параметрами, то что то удаляется? спрайты, камера, свет? Раньше перед сменой разрешения был Clearworld() и повторная загрузка всех энтити. А теперь программа виснет после нового вызова графики. Вообще пример по корректному переключению разрешения внутри программы хотелось бы, без очистки всего мира. |
Ответ: смена разрешения
начал потихоньку разбираться:
во-первых удаляются шрифты, их надо грузить заново |
Ответ: смена разрешения
на самом деле без отчистки всего мира разрешение не переключить никак, потомучто заново пересоздается девайс и теряются все загруженные в видеопамять ресурсы. мое имхо - на самом деле не нужно сменять разрешение в программе. Или сделай внешний файл - или пиши в программе, что на самом деле ее нужно перезапустить после смены разрешения, и на самом деле только после етого прмиенится новое разрешение.
|
Ответ: смена разрешения
Так, понятно - видимо смена графики убивает вообще все :(
|
Ответ: смена разрешения
на самом деле - шрифты это тоже текстура. и тоже хранится в видеопамяти (наверное).
у меня было очень много глюков с динамичной сменой разрешения. поетому я забил на него - просто пишу жирную мигающую надпись - перезапусти программу. |
Ответ: смена разрешения
Можно переключать без очистки - но приходится грузить все заново. Вот такая ерунда.
Просто хотелось сделать как в обычных играх. Может просто перезапускать программу и откатывать ее до этого момента? Перезапуск приложения ведь можно сделать? |
Ответ: смена разрешения
В каждой второй обычной игре именно так и делают - пишут здоровую надпись "Перезапусти игру"
Либо переключить разрешение можно только в меню. А меню загрузить заново намного легче чем непосредственно игру. |
Ответ: смена разрешения
тут в чем загвоздка, на самом деле еще до загрузки меню (где можно выбрать уровень например) часто грузят всякие уровненезависимые вещи. Например игрока и его подругу )) Чтобы не грузить каждый раз заново. На мой взгляд - не стоит 10 секунд на перезапуск игры столького геморроя, сколько его вызывает реализация "горячей" смены разрешения.
|
Я в меню и переключаю.
Дело в том, что между меню и остальными местами не должно быть рывка со сменой разрешения (или просто с перезагрузкой без смены разрешения). Сейчас все работает, но маска спрайтов опять нарушается если в меню переключить разрешение и все загрузить снова - потому что при смене разрешения приходится грузить все элементы - и меню и остальное. Вобщем мне надо либо программно перезапускать приложение, либо понять почему нарушается маска. Есть конечно еще один вариант - с добавлением минимальной альфы маска действует, но появляются небольшие пиксельные артефакты. Я конечно могу делать первую загрузку объектов уровня после выхода из меню дальше в игру, но игрок может вернуться обратно в меню из игры (при этом игровые объекты спрячутся, а не сотрутся) и переключить таки разрешение. Тогда привет маска :) Не помогает даже принудительное удаление каждого спрайта перед сменой разрешения. |
Ответ: смена разрешения
кстати я делал в меню переключалку разрешений - но была одна проблема - при разе 3ем - разрешение слетало
вобщем половину рисовалось черным как спрайт как будто загораживет камеру. Щас уже не помню , но делал прям без перегрузки смену разрешений - это точно. вобщем писал в .ini и оттуда читал. |
Да, тоже примерно на третьем разе маска рушится :)
А разрешения и так в файл сохраняются, а потом игра меняет разрешение на новое. Короче при первой смене разрешения назначу альфу спрайтам, пока так. после смены разрешения назначение альфы лечит проблему, главное назначить ее спрайту до создания копий. |
Ответ: смена разрешения
Наверно дело в том что копии спрайтов находятся в массиве с типом,
наверно нужно массив с типом объявлять заново? (попробовал - не помогает :( ) |
Ответ: смена разрешения
я просто написал внешний перезагрузчик на пурике
запускаю его из блитца и закрываю программу. он запускается ждет 5 сек. и запускает игру заново |
Ответ: смена разрешения
собственно сильно будет необходимо так и сделаю, тем более на PureBasic + Blitz3Dsdk делаю
|
Ответ: смена разрешения
Я кароч сделал 2 ексешки - 1 меню установок - из нее запускаетсья основная ексешка программы. Конфиг файл один на 2 (в 1 проге ты его меняешь а в запускаемой читаешь) все просто :)
|
Часовой пояс GMT +4, время: 07:46. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot