ПрограммированиеФорумОбщее

Вопросы по VB6 (22 стр)

Страницы: 121 22 23 24 25 Следующая »
#315
18:59, 2 мая 2011

Майкл, а что если в игре будет много одинаковых объектов, придётся для них создавать класс с их текстурой? или я что-то не так понял

#316
19:04, 2 мая 2011

А блин же... невнимательно прочитал про тени, запутался

#317
19:06, 2 мая 2011

Если объекты одинаковы - достаточно создать один экземпляр и передавать ему позицию для рендера параметром. Если какую-то обычную текстуру используют экземпляры разных классов, или одного, но с разными другими ресурсами - можно загрузку и уничтожение подобных текстур вынести в отдельный модуль (один модуль для всех текстур, простых, не как тени).
Просто менеджер тестур - это круто и правильно, но требуется ли оно вам СЕЙЧАС? И не начнёте ли вы его переписывать , когда он действительно потребуется?

#318
19:09, 2 мая 2011

Mikle
Для удобства в DX8 мне нехватало некоторых методов в классе текстуры...
Например:
Draw
DrawRect
GetSize
GetSrcSize
CreateFromFile
и др плюшек. В результате у меня был свой тип текстуры который работал через менеджер...
Я думаю может добавить их в твой интерфейс Direct3DTexture9... Тогда и менеджер не нужен...

Mikle
> каждый класс при создании экземпляра загружает свои текстуры
Еще может быть ситуация загрузки одной текстуры двумя разными обьектами(3D сетками)

#319
21:48, 2 мая 2011

max255, у тебя не возникает проблем с утечкой памяти?
Странное дело, после перезагрузки моего грибного уровня,  где-то на 5-30кб памяти съедается больше.
Это при том, что уровень то один и тот же...

#320
22:23, 2 мая 2011

В ИДЕ постоянно. Мне кажеться она память никогда не сбрасывает...
А в скомпилированном проекте все ок!

#321
22:58, 2 мая 2011

А у меня даже в скомпилированном утекает, причём первые килобайт 200 съедаются за 5-6 перезагрузок уровня, а потом медленнее. Иногда чучуть возвращает память, но потом опять догонает и перегоняет. Мистика!

#322
23:14, 2 мая 2011

СырМан
> килобайт 200
>_< ты жестоко играеш с массивами...

#323
5:15, 3 мая 2011

Думаю, что дело не в массивах. В старой версии тоже память пропадала (после перезагрузки уровня), а массивов там не было.

#324
9:58, 3 мая 2011

В SR2D память течь не должна вообще, даже если на удалять спрайты при завершении программы, я всегда рекомендую их удалять принудительно, чтобы не вырабатывать плохих привычек, в DirectX уже могут возникнуть проблемы.
Память может резервировать IDE для каких-то своих нужд, так же теоретически в SR2D возможны варианты, когда утекает память после остановки программы по ошибке, но после перезагрузки IDE всё восстановится.
Главное не использовать оператор End - это аварийное завершение. Нужно делать Unload всем формам и выходить из процедуры Main, если она является запускаемой.

#325
13:19, 3 мая 2011

Ни чего из перичисленного

#326
13:42, 3 мая 2011

А я использовал End...
В основном в таких случаях:

 If core.Init(Me.HWnd, D3DFMT_A8R8G8B8, True, 1024, 768) = False Then
  Call MsgBox("Невозможно создать ядро!", vbCritical, "MXEngine")
  core.Destory
  End
 End If

Исправлю....

#327
15:08, 3 мая 2011

Причём, что удивительно, память пропадает рандомно. Либо не пропадает, либо пропадает на 5-40кб. И это происходит только после перезагрузки уровня! Даже специально перед перезагрузкой обнулил все массивы и переменные, не помогло. Используемую приложением память проверяю диспетчиром задач win7.

#328
15:17, 3 мая 2011

СырМан
Понял. Это нормально - сделай цикл и перезагрузи уровень 1000 раз, убедишься, что память не утекает, есть только эти флуктуации.

#329
17:46, 3 мая 2011

Попустил несколько циклов, вот результат
загрузка - 8332 кб
100 циклов - 9044 кб
200 циклов - 9112 кб
300 циклов - 9336 кб
400 циклов - 9732 кб
500 циклов - 10080 кб
600 циклов -10372 кб
Средний АП на 100 циклов - 340 кб
Теоретический милион циклов - 3328,4 мб

Страницы: 121 22 23 24 25 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.