![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.08.2013
Сообщений: 51
|
![]()
Нужно хранить как то спрайты, у каждого спрайта несколько параметров
Ширина, высота и т.д.(около 5), в суме это 5к экземпляров,я так понимаю так не стоит делать? Что можно использовать для этого? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 30.10.2010
Сообщений: 524
|
![]()
Вопрос: а Вам всегда нужны эти 5к спайтов? Если нет, то думайте, как отпитимизовать код и выделять память только под нужные обьекты.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 26.08.2013
Сообщений: 51
|
![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 30.10.2010
Сообщений: 524
|
![]()
Вот попробуйте в цыкле создать 1000 обьектов и посмотрите в диспетчере задач, сколько памьяти сожрет) Думаю, что много не будет...если конечно в каждом обьекте не много полей и нет контэйнеров.
Последний раз редактировалось Delphi_ProGer; 30.08.2013 в 01:57. |
![]() |
![]() |
![]() |
#5 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
Списки: TList, TPointerLisr, TObjectList, можно ещё TStringList, да он умеет присваивать строке объект. Цитата:
Да и не в 90х живем, сейчас мало у кого ПК с 128 а то и 256 ОЗУ на борту. CeHTuJI А вы не создавайте и не держите все спрайты одновременно, создавайте только текущую видимую часть+со всех сторон 1 слой чтобы не тормозила отрисовка, а остальная пускай место не забивает. |
||
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 26.08.2013
Сообщений: 51
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Тысяча объектов - копейки.
Если у Вас там по 5 полей типа интеджер, то всего в памяти будет 5*4(размер интеджер)*1000 байт ~ 20 килобайт. Если будут более сложные вещи , типа строк - то в зависимости от их длины уже может быть существенно, но я не верю что для тривиальной задачи необходимо хранить 1000 экземпляров разных строк, скорее всего они во многом повторяются, значит поддаются оптимизации засчёт указателей (в дельфи для строк это автоматизировано, могу дать теорию). Потом, 1000 объектов на экране для простой игры (а сложную Вы не напишите, при таких-то вопросах) - это скорее всего тайловая карта, а она, как известно, не требует тысяч графических объектов, а лишь небольшого набора, которым замощён экран по некоей карте, и такая организация легко оптимизируется "банком" - почитайте раздел "создание и обсуждение игр" прикреплённые темы. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[WinForms] много экземпляров дочерней формы | Glen | Windows Forms | 1 | 23.07.2012 20:33 |
CLR. Ошибка C3918. Как вызвать из объекта обработчик, переданный родителю объекта от деда? | Stilet | Общие вопросы .NET | 0 | 15.01.2011 17:49 |
С помощью методов и свойств объекта осуществляется управление терминалом. Имя (идентификатор) объекта | User>lia | Общие вопросы Delphi | 4 | 16.01.2009 16:37 |