Понедельник, 11 Ноября 2024, 08:03

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Тормоза!
NSakenovДата: Пятница, 24 Июня 2011, 16:27 | Сообщение # 1
Игродел от Глоба
Сейчас нет на сайте
Привет.

Я добавил в игру 2 фона с огромными разрешениями (1500х1000) и (2000х1500), после этого FPS стал опускаться до 30, хотя скорость комнаты - 60. Все стало медленным. Как можно все оптимизировать? Убрать фоны - не вариант. Деактивация объектов не вариант, некоторые объекты начинают глючить.
QvantДата: Пятница, 24 Июня 2011, 16:44 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
NSakenov, порежь фон на тайлы и выводи на экран нужные куски .
Если положение фонов меняется нечасто , то можно в сурф отрисовывать - будит ещё быстрее .
GameMixДата: Пятница, 24 Июня 2011, 16:45 | Сообщение # 3
старожил
Сейчас нет на сайте
Размер фона больше чем размер комнаты или такой же? Если размер фона больше размера комнаты, то игра может подвисать.

Steel Standoff - 2D аркада.
Мои статьи
NeZnayuДата: Пятница, 24 Июня 2011, 17:18 | Сообщение # 4
__танцуй!__
Сейчас нет на сайте
Деактивировать объекты нужно тоже с умом.

CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
NSakenovДата: Пятница, 24 Июня 2011, 17:44 | Сообщение # 5
Игродел от Глоба
Сейчас нет на сайте
Я деактивирую объекты кодом, который написан в справке ГМ.

Мой фон зациклен по горизонтали. Может, поэтому?
GameMixДата: Суббота, 25 Июня 2011, 03:32 | Сообщение # 6
старожил
Сейчас нет на сайте
Quote (NSakenov)
Я деактивирую объекты кодом, который написан в справке ГМ.

Думаю, NeZnayu имел в виду, что активными должны оставаться только объекты в пределах вида. В Game Maker есть функция, которая активирует экземпляры объектов, находящихся в прямоугольной области. В справке даже код подходящий есть, только там нужно поменять местами действия: активацию и деактивацию.


Steel Standoff - 2D аркада.
Мои статьи
NSakenovДата: Суббота, 25 Июня 2011, 10:56 | Сообщение # 7
Игродел от Глоба
Сейчас нет на сайте
Я его и использую.
NSakenovДата: Суббота, 25 Июня 2011, 10:56 | Сообщение # 8
Игродел от Глоба
Сейчас нет на сайте
Code
{
   instance_activate_all();
   instance_deactivate_region(view_xview[0],view_yview[0],
                         view_wview[0],view_hview[0],false,true);
}
AGENTX001Дата: Суббота, 25 Июня 2011, 11:43 | Сообщение # 9
почётный гцупер
Сейчас нет на сайте
NSakenov, Ты деактивируешь объекты которые находятся в пределах вида!
Code
{  
    instance_deactivate_all();  
    instance_activate_region(view_xview[0],view_yview[0],  
                          view_wview[0],view_hview[0],false,true);  
  }
QvantДата: Суббота, 25 Июня 2011, 12:33 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
NSakenov, не там ковыряеш ... если у тебя падает ФПС после добавления фонов а до этого было всё нормально , то при чём деактивация тех объектов которые не забивали ФПС ?

Вот сидит телепаты на форуме и дают советы smile
Вот смотри если у тебя большая комната и один из видов на всю комнату (например миникарта) , то все твои зацикленные фоны будут отрисовываться каждый Draw , уменьшатся и выводиться на экран ...
делаем оптимизацию так - включаем нужный вид (миникарту) ,
отрисовываем фоны в комнате (ГУИ, игроков врагов отрисовывать не надо) ,
отрисовываем её в сурф ,
переводим сурф в спрайт,
выключаем вид , а на место этого вида выводим этот спрайт .

В итоге каждый Draw рисуется один небольшой спрайт вместо всей комнаты

Второй вариант , у тебя большая комната но только один вид в размер экрана который захватывает только небольшую часть комнаты .
Тогда может твои воны просто непоместились в память видеокарты полностью и постоянно подгружаются.
Пореж на тайлы скажем 256х256 .
Используя дата структуру "сетка" запиши в неё номер тайла
вот теперь перемещая вид координаты округляй до 256 и выделяй из сетки нужный регион , получаеш из этого региона номеров тайлов и отрисовываеш их в сурф.
При движении , орисовываеш столбец или строку следующих тайлов из сетки , смещаешь сурф и снова отрисовываеш сурф .
Всё будит без тормозов . smile

PS.Надеюсь умееш работать с видами , сетками , сурфами ?
PS2. А вообще не стоит распологать объекты в комнате , а лучше програмно добалять/удалять при не обходимости , лучше и быстрей будит всякой деактивации.
NSakenovДата: Суббота, 25 Июня 2011, 12:36 | Сообщение # 11
Игродел от Глоба
Сейчас нет на сайте
Ладно, вопрос уже неактуален, фон заменил на более маленький (480х640)...
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг