sulion
Пользователи-
Постов
20 -
Зарегистрирован
-
Посещение
Весь контент sulion
-
Доброго вечера! Код и картинка по методу уважаемого господина Крапоткина - ниже У меня получился такой результат: Кол-во персонажей = 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
-
Не написал тогда, чем закончилось - восполняю Спасибо за советы - помогло. Насыпал тогда bpl-файликов, начиная с того что выше - это и решило проблемку
-
Друзья, привет! Как можно радикально поднять скорость отображения картинки? Код и исполняемый файл прикладываю. У меня пока выдает в районе 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
-
Да, но Architect 10.3.1 Trial я тоже ставил, и там тоже не было этого компонента @Tumaso , уточните пожалуйста, у вас какая из версий 10.2.3 ?
-
Спасибо на скрине показал как набираю этот компонент чтобы дропнуть его на форму - и нет его Гуглить его в яндексе пробовал и не нашёл ни вчера ни сегодня, на сайте docwiki.embarcadero.com все странички предполагают что "ну типа он у вас уже есть" Где его можно взять?
-
Коллеги, добрый день! Вопрос на засыпку - помогите пожалуйста, чего мне не хватает для успешного запуска? Список 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
-
Ага, сработало! Спасибо! Кроме масштабирования мне ещё понадобится два действия: * сдвиг картинки в bitmap * совмещение нескольких (например, двух) битмапов на одном И, пожалуй, всё - остальное могу drawbitmap.7z
-
Друзья, возникла необходимость большое количество картинок подравнивать (сдвигать изображение вправо-влево, масштабировать и затем сохранять). Помогите пожалуйста правильно воспользоваться DrawBitmap Проект:drawbitmap.7z
-
Krapotkin, спасибо большое за советы! Кажется, картинка сложилась. Дальше разберусь (или прибегу снова ) PS По хранению на диске выбрал Zip-архив - посмотрел, архивы с ресурсами это довольно распространённое решение у игроделов
-
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 со всем содержимым? Дело для меня новое, раньше писал только маленькие игрушки для друзей, сейчас хочется сделать по уму что-то похожее на нормальную игру (хотя и с открытым кодом) Заранее спасибо за советы!
-
Если очень хочется работать попиксельно - то можно попиксельно свести два битмапа, вызывая getPixel одного и setPixel другого. http://docwiki.embarcadero.com/Libraries/Tokyo/en/FMX.Graphics.TBitmapData
-
Здравствуйте! Я хочу получить Trackbar с рычажком-рисунком. Видимо, мне нужно поменять стиль HThumbBarStyle. Как добавить на него картинку? Вернее, картинку-то я добавил, но чего-то ещё не сделал, а чего - не знаю. Подскажите, пожалуйста. 6.7z
-
- THueTrackBar
- Стиль
-
(и ещё 2 )
C тегом:
-
Хаха, да, я заметил что картинка съезжает то на пиксель, то на два - и решил проверить закономерность. Дрожжание - как вы и сказали - решается WrapMode := Stretch Не могу поверить, что дважды наступил на те же грабли буду шерстить форум внимательнее
-
Подскажите пожалуйста, как выровнять рисунок - хотелось бы, чтобы прямоугольный спрайт увеличивался в размерах, оставаясь по центру. Попробовал всё что очевидно, и снова пришёл за советом. 4.7z
-
Вопрос решился парой кликов мышкой: всего-то нужно быть переставить WrapMode у TImage в положение Stretch - подсмотрел в другой тебе на форуме. Всем спасибо! Очень тронут вниманием, накинутые идеи обязательно запомню и попробую.
-
Здравствуйте! Очень нравится FireMonkey, спасибо за отличный продукт. Помогите пожалуйста вот с каким моментом: как программно поменять размер изображения TImage ? ... Character.Bitmap.LoadFromFile( i.m[ be, bi ].g ); {спрайтик} Character.Position.X := ( Hall.Width - Character.Width ) / 2; {стоим посредине} Character.Position.Y := ( Hall.Height - Character.Height); {стоим на полу} Character.Width := PC.Width * PC.Scale; Character.Height := PC.Height * PC.Scale; ... Проблема: вместо того чтобы отведав пирожка расти стоя на полу, персонаж не меняется в размере. Это - кусочек кода, который по таймеру 10 раз в секунду отрисовывает персонажа. Топорно, без всяких оптимизаций (моя первая проба после TAnimationXXX). Вообще, скорость FireMonkey впечатляет - спрайт ростом с 3/4 экрана с лёгкостью меняется без морганий на очень слабом компьютере, и тики с относительно "тяжёлой" математикой не "наползают" друг на друга по времени. Объект PC - это персонаж, там хранятся вещмешок, умения, способности и пара полей для графики (масштаб PC.Scale и размеры в метрах PC.Height, PC.Width ). Форма запускается в полноэкранном режиме, на ней лежит TScaledLayout растянутый Align=Client на весь экран, внутри него - фоновый рисунок Hall, персонаж Character и класс-библиотека спрайтов, имена файлов рисунков доступны как i.m[].g