Перейти к содержанию
Fire Monkey от А до Я

sulion

Пользователи
  • Постов

    20
  • Зарегистрирован

  • Посещение

Посетители профиля

3 522 просмотра профиля
  1. Доброго вечера! Код и картинка по методу уважаемого господина Крапоткина - ниже У меня получился такой результат: Кол-во персонажей = 1000 | метод | fps | память | | LoadFromFile из дерева каталогов, 1000 TImage, со сменой Z-порядка | 0 | 581 МБ | нулевая версия c 6 МБ картинок | LoadFromStream из архива в поток, 1000 TImage, со сменой Z-порядка | 0 | 78 МБ | (c) я, первый пост в этой ветке | LoadFromStream из архива в битмап, 1000 TImage, со сменой Z-порядка | 30 | 59 МБ | (с) Slym, 12 марта | LoadFromStream из архива в битмап, рисуем сразу в Z-порядке на Canvas | 70 | 24 МБ | (с) Крапоткин, 16 марта Т.о. метод уважаемого Крапоткина - самый быстрый и экономный. Выигрыш - более чем вдвое. Снимаю шляпу Код и картинка: fps3.zip
  2. Благодарю! Почитаю Решение уважаемого Slym у меня дает 70+ fps без перестановки порядка и 30+ fps с перестановкой при объеме занимаемой памяти 56 МБ на 1000 персонажей Какой выигрыш по fps и памяти вы ожидаете по вашей технологии?
  3. Не написал тогда, чем закончилось - восполняю Спасибо за советы - помогло. Насыпал тогда bpl-файликов, начиная с того что выше - это и решило проблемку
  4. Друзья, привет! Как можно радикально поднять скорость отображения картинки? Код и исполняемый файл прикладываю. У меня пока выдает в районе 10-15 fps, больше получить не удается Как пользоваться: 1. Запускаем 2. Вводим 100 3. Смотрим на цифру сверху - там будет, какой fps выдает программа Контекст вопроса Перед вами - тест-бенчмарк, по которому я определяю, какими инструментами пользоваться LoadFromStream. Перешел на потоки - это дало ускорение в несколько раз: раз в пять ускорил переход от LoadFromFile к LoadFromStream - это прямо повлияло на fps. Раза в два ускорил переход от каталога с файлами к zip-архиву, это скорее про время загрузки. BeginScene. Читал на этом форуме, что он дает некоторое ускорение BringToFront. Персонажам в будущем предстоит входить в дома и обходить деревья, для таких операций в RAD Studio предусмотреть BringToFront/SendToBack, т.е. понадобится перестраивать поштучно Z-порядок, когда кто-то кого-то загородил. Соответственно, в вызовем разок. По моим наблюдениям - если закомментарить эту строчку, то fps увеличивается вдвое. Т.е. если на этих инструментах написать игру, то она будет идти плавно, но когда одна-единственная деталь поменяет Z-порядок, то игра вдвое снизит fps а потом возобновит плавность. Рывок будет заметный Что ещё можно предпринять, чтобы поднять fps? fps.zip source.zip
  5. Да, но Architect 10.3.1 Trial я тоже ставил, и там тоже не было этого компонента @Tumaso , уточните пожалуйста, у вас какая из версий 10.2.3 ?
  6. Спасибо на скрине показал как набираю этот компонент чтобы дропнуть его на форму - и нет его Гуглить его в яндексе пробовал и не нашёл ни вчера ни сегодня, на сайте docwiki.embarcadero.com все странички предполагают что "ну типа он у вас уже есть" Где его можно взять?
  7. Коллеги, добрый день! Вопрос на засыпку - помогите пожалуйста, чего мне не хватает для успешного запуска? Список dll файликов прикрепляю внизу письма, Oracle 12.2 клиент стоит, PL/SQL Developer 12 использую каждый день Симптомы: Из хорошего - FireDAC Explorer успешно видит все нужные мне БД - и таблицы, и пакеты и т.д. В Delphi XE7 приложение работало успешно. Delphi 10.2.3 подчёркивает два модуля. Если эти два модуля закомментарить, то - компилирует успешно, но не может подцепиться ни к одной БД Oracle Создал пустое приложение, в него положил TFDConnection, драйвер Oracle он не видит Что уже пробовал: Вчера поставил все dll. Сегодня поставил Delphi 10.3.1 Architect Trial (на месяц), в нём проблема воспроизводится. Ещё раз переустановил драйвер Oracle. Что ещё можно сделать? Обещанный список dll: oci.dll ocijdbc12.dll ocijdbc12.sym ociw32.dll ociw32.sym ojdbc8.jar oramysql12.dll oramysql12.sym orannzsbb12.dll orannzsbb12.sym oraocci12.dll oraocci12.sym oraocci12d.dll oraocci12d.sym oraociei12.dll oraociei12.sym oraons.dll orasql12.dll orasql12.sym 23.7z Request.7z
  8. Ага, сработало! Спасибо! Кроме масштабирования мне ещё понадобится два действия: * сдвиг картинки в bitmap * совмещение нескольких (например, двух) битмапов на одном И, пожалуй, всё - остальное могу drawbitmap.7z
  9. Друзья, возникла необходимость большое количество картинок подравнивать (сдвигать изображение вправо-влево, масштабировать и затем сохранять). Помогите пожалуйста правильно воспользоваться DrawBitmap Проект:drawbitmap.7z
  10. Krapotkin, спасибо большое за советы! Кажется, картинка сложилась. Дальше разберусь (или прибегу снова ) PS По хранению на диске выбрал Zip-архив - посмотрел, архивы с ресурсами это довольно распространённое решение у игроделов
  11. TLDR: Откуда из файлов игры лучше загружать большое количество картинок? Доброе утро, коллеги! Я собираюсь приступить к написанию спрайтовой игры (в основном под Windows, в перспективе возможна сильно урезанная версия для Android) Соответственно, подбираю три вещи: 1. Как хранить спрайты в файлах игры 2. Как хранить спрайты в памяти 3. Как их отображать В прошлых игрушках файлики лежали кучей в поддиректориях, и оттуда подбирались TImage.Bitmap.LoadFromFile Спасибо Fire Monkey даже такое "топорное" решение выдавало честные 20 fps. Cейчас хочется сделать "как полагается" Спрайт имеет размеры в пределах 800х600 (разный у разных персонажей), фоны от 960х540 до около 4000х540 (для платформерных мини-игр) Спрайтов у каждого персонажа 7200, персонажей 9 - с фонами и иконками под 100 000 картинок Спрайты персонажа разбиты по смыслу на анимации (7200 = 30 анимаций * 8 направлений * 30 кадров), то есть когда показывает анимацию то нужно только её тридцать кадров Одновременно на экране могут быть от одного персонажа (масштаб 1-2), до тридцати (масштаб 0,05-0,25) Спасибо за обстоятельные материалы по TImageList - как понял, лучше много картинок хранить в нём. Если использовать объект TImageList - то скажется ли на производительности если использовать не один объект а дюжину - по одному на персонажа? Также интересует производительность TGlyph при быстрой смене ссылки на отображаемый спрайт (нужно минимум 10 fps) И - какие есть варианты откуда загружать эту графику? Желательно без создания временных файлов во время загрузки (отпадает TZipFile) Например, удастся ли мне сохранить и при следующем запуске загрузить объект TImageList со всем содержимым? Дело для меня новое, раньше писал только маленькие игрушки для друзей, сейчас хочется сделать по уму что-то похожее на нормальную игру (хотя и с открытым кодом) Заранее спасибо за советы!
  12. Если очень хочется работать попиксельно - то можно попиксельно свести два битмапа, вызывая getPixel одного и setPixel другого. http://docwiki.embarcadero.com/Libraries/Tokyo/en/FMX.Graphics.TBitmapData
  13. Здравствуйте! Я хочу получить Trackbar с рычажком-рисунком. Видимо, мне нужно поменять стиль HThumbBarStyle. Как добавить на него картинку? Вернее, картинку-то я добавил, но чего-то ещё не сделал, а чего - не знаю. Подскажите, пожалуйста. 6.7z
  14. Хаха, да, я заметил что картинка съезжает то на пиксель, то на два - и решил проверить закономерность. Дрожжание - как вы и сказали - решается WrapMode := Stretch Не могу поверить, что дважды наступил на те же грабли буду шерстить форум внимательнее
  15. sulion

    Почему пляшет TImage?

    Подскажите пожалуйста, как выровнять рисунок - хотелось бы, чтобы прямоугольный спрайт увеличивался в размерах, оставаясь по центру. Попробовал всё что очевидно, и снова пришёл за советом. 4.7z
×
×
  • Создать...