Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Флейм
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #61  
Старый 26.05.2013, 21:03
Аватар для Царь
Царь Царь вне форума
Новичок
 
Регистрация: 13.05.2013
Сообщения: 52
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Кхм... Такой вот вопрос.

У меня программа уже весит порядка 435 мб и это без картинок и звука. Вопрос, это нормально? Ибо она у меня сохраняется и компилируется по полчаса.
Ответить с цитированием
  #62  
Старый 26.05.2013, 21:15
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Чего-то я не могу себе представть, ЧТО нужно запихать в программу, чтобы она весила 430 метров. Фон что ли загружен в TImage "как есть"? Да еще и в виде BMP 32 бита размером 10000х10000 пикселей?
Не надо ничего в EXE запихивать кроме совсем мелких деталей. Все должно лежать отдельно, грузиться по частям. Иначе никакой памяти не хватит - весь Portal 2 в оперативке занимает 1 гигабайт, а тут уже половина этого размера.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #63  
Старый 26.05.2013, 21:18
Аватар для Царь
Царь Царь вне форума
Новичок
 
Регистрация: 13.05.2013
Сообщения: 52
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Хе-хе, нет, фон у меня 800х270 16 бит. Я сам в тупике и грешу на глобальные переменные без заданных ограничений, читал о том, что даже переменная типа string без ограничения сильно загружает программу.
Но я не уверен. В Целом, как я вижу, загружен только основной юнит. Однако не могу понять чем.
Ответить с цитированием
  #64  
Старый 26.05.2013, 21:19
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

String это 4 байта. Остальное выделяется по необходимости в правильном размере.
Гигантские глобальные массивы? Из миллиона элементов?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #65  
Старый 26.05.2013, 21:26
Аватар для Царь
Царь Царь вне форума
Новичок
 
Регистрация: 13.05.2013
Сообщения: 52
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Единственный динамический массив - массив монстров, который увеличивается на единицу с каждым вызовом процедуры NewEnemy. Может ли оно как-то повлиять на остаточный вес программы?
Ответить с цитированием
  #66  
Старый 26.05.2013, 21:30
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Выложи где-нибудь exe. Только не как вложение на форуме - не влезет.
И не забудь сжать предварительно.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 26.05.2013 в 21:39.
Ответить с цитированием
  #67  
Старый 26.05.2013, 22:19
Аватар для Царь
Царь Царь вне форума
Новичок
 
Регистрация: 13.05.2013
Сообщения: 52
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

тык

Прошу. Искренне надеюсь на Вашу помощь в этом вопросе. Ибо работать уже невозможно из-за сильной загрузки процессора во время сохранения и компиляции. Да и на будущее буду знать однозначно, что делать с весом программы )
Ответить с цитированием
  #68  
Старый 27.05.2013, 01:16
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Без картинок, говоришь? .dfm файл весит 250 метров. И их две штуки (еще бекапный).
Код:
object DXImageList: TDXImageList
  DXDraw = DXDraw
  Items.ColorTable = {.....}
  Items = <
    item
      Name = 'HeroStandRight'
      PatternHeight = 53
      PatternWidth = 53
      Picture.Data = {
          045444494228000000D4000000350000000100100003000000C8570000000000
          00000000000000000000000000007C0000E00300001F00000000000000000000
          0000000000000000000000000000000000000000000000000000000000000000
...
// Picture data? Что это, кроме как картинка?
А также нехилый Font, ImageStandLeft, ...
Все картинки в ImageList'ы запиханы. Открыть не могу, половины компонентов у меня нет.
А exe-шник, что приложен, весит 500 кб, и он не валидный.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 27.05.2013 в 01:18.
Ответить с цитированием
  #69  
Старый 27.05.2013, 02:07
Аватар для Царь
Царь Царь вне форума
Новичок
 
Регистрация: 13.05.2013
Сообщения: 52
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Верно, не валидный, ибо его компиляция занимает около получаса. Хм, вот оно что, значит изображения. Благодарю, я посмотрю


Я не говорил, что у меня картинок нет, я говорил, что фоновое изображение не такое огромное


Ага! Все ясно. Значит надо не в программу, а при запуске программы загружать файлы. Теперь я буду знать, спасибо )

Последний раз редактировалось Царь, 27.05.2013 в 02:17.
Ответить с цитированием
  #70  
Старый 27.05.2013, 09:48
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Мэд, ну уж не скажи. Всю тему не читал, однако, из того, что видел - человек задаёт вполне адекватные вопросы, пусть и начального уровня. По-моему, кадр адекватен - ты б лучше присмотрелся к откровенным попрошайкам в разделе "начинающим", на их фоне парень просто гений
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение:
Царь (27.05.2013)
  #71  
Старый 27.05.2013, 09:51
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Мея кульпа. Сообщения удалил.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #72  
Старый 27.05.2013, 22:39
Аватар для Царь
Царь Царь вне форума
Новичок
 
Регистрация: 13.05.2013
Сообщения: 52
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Позвольте задать очередной тупой вопрос:

Я догадался использовать компонент OpenDialog, прописал:
Код:
FonMusic.Items[0].Wave.LoadFromFile('путь');
Однако потом быстро понял, что загруженный файл никуда не сохраняется ибо в items нет вкладок. Делать вкладки и оставлять пустыми невозможно - ругается. заполнять их тоже нельзя, - грузит exe. Делать вкладки с мелкими незначительными звуками "для отмазки", что бы следом переписать полноценной музыкой не решился, - не профессионально и не круто.
Отсюда следует вопрос: как правильно загружать музыку и добавлять в DxWaveList(он же FonMusic)?
__________________
Сталкиваться с препятствиями полезно. Только отвечая на вызовы судьбы, мы узнаем пределы наших возможностей.
Ответить с цитированием
  #73  
Старый 27.05.2013, 23:23
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Что значит "заполнять нельзя"? А как он тогда играть будет? Заполнять динамически из файгов, создавать тоже динамически. Какой-нибудь капитанский Items.Add или что-то в этом роде.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
Царь (30.05.2013)
  #74  
Старый 30.05.2013, 23:32
Аватар для Царь
Царь Царь вне форума
Новичок
 
Регистрация: 13.05.2013
Сообщения: 52
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Итак, продвигается игра у меня удачно ) Можно сказать, что я закончил бетаверсию того, что задумал. И этого наверняка хватит для защиты курсовой )
Однако осталось одно основное, что требуется сделать. Мне требуется сохранять прогресс. В данном случае моей игры, я хочу сделать таблицу рекордов. Ну... знаете, такая табличка, где вывешивается имя и заработанные очки. Вот. То есть при проигрыше, игроку предоставляется возможность ввести своё имя в окошко для записи, а далее его имя и его заработанные очки записываются в отдельный файл, а из этого файла выводятся в, как я понял, ячейки stringgrid все что он там заработал. Поставить условие, что если число очков ячейки больше, то оно встает на первое место - элементарный способ сортировки. Но вот как сделать так, что бы при нажатии на кнопку, выводился список лидеров где-то на моей форме? Можно ли выводить все это в DXDraw компоненте? Или может есть боле лучший способ? Подскажите )


- И еще. Все таки, у меня монстры атакуют все, но задержка все равно идет общая. получается, когда один монстр атаковал, у меня включается глобальный отсчет задержки и из-за него все монстры не могут атаковать. Подскажете как сделать счетчик задержки личным для каждого монстра?
__________________
Сталкиваться с препятствиями полезно. Только отвечая на вызовы судьбы, мы узнаем пределы наших возможностей.
Ответить с цитированием
  #75  
Старый 30.05.2013, 23:38
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Можно прилепить стринг-грид. Отрубить рисование dx и работать средствами VCL. Просто и быстро, но выглядеть будет жутко. Можно нарисовать табло самому, и руками же ввести в него текст. Чуток посложнее. Хранить просто в текстовом файле.
Цитата:
- И еще. Все таки, у меня монстры атакуют все, но задержка все равно идет общая. получается, когда один монстр атаковал, у меня включается глобальный отсчет задержки и из-за него все монстры не могут атаковать. Подскажете как сделать счетчик задержки личным для каждого монстра?
Говорю N+1 раз - сделать счетчик полем класса "монстр", и в функции, которая счетчик обрабатывает, пройтись по всем монстрам и обработать все счетчики.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 30.05.2013 в 23:42.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
Царь (01.06.2013)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:09.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter