sulion

Пользователи
  • Публикаций

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

  • Посещение

Информация о sulion

  • Звание
    Пользователь

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

425 просмотров профиля
  1. Ага, сработало! Спасибо! Кроме масштабирования мне ещё понадобится два действия: * сдвиг картинки в bitmap * совмещение нескольких (например, двух) битмапов на одном И, пожалуй, всё - остальное могу drawbitmap.7z
  2. Друзья, возникла необходимость большое количество картинок подравнивать (сдвигать изображение вправо-влево, масштабировать и затем сохранять). Помогите пожалуйста правильно воспользоваться DrawBitmap Проект:drawbitmap.7z
  3. Krapotkin, спасибо большое за советы! Кажется, картинка сложилась. Дальше разберусь (или прибегу снова ) PS По хранению на диске выбрал Zip-архив - посмотрел, архивы с ресурсами это довольно распространённое решение у игроделов
  4. 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 со всем содержимым? Дело для меня новое, раньше писал только маленькие игрушки для друзей, сейчас хочется сделать по уму что-то похожее на нормальную игру (хотя и с открытым кодом) Заранее спасибо за советы!
  5. Если очень хочется работать попиксельно - то можно попиксельно свести два битмапа, вызывая getPixel одного и setPixel другого. http://docwiki.embarcadero.com/Libraries/Tokyo/en/FMX.Graphics.TBitmapData
  6. Здравствуйте! Я хочу получить Trackbar с рычажком-рисунком. Видимо, мне нужно поменять стиль HThumbBarStyle. Как добавить на него картинку? Вернее, картинку-то я добавил, но чего-то ещё не сделал, а чего - не знаю. Подскажите, пожалуйста. 6.7z
  7. sulion

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

    Хаха, да, я заметил что картинка съезжает то на пиксель, то на два - и решил проверить закономерность. Дрожжание - как вы и сказали - решается WrapMode := Stretch Не могу поверить, что дважды наступил на те же грабли буду шерстить форум внимательнее
  8. sulion

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

    Подскажите пожалуйста, как выровнять рисунок - хотелось бы, чтобы прямоугольный спрайт увеличивался в размерах, оставаясь по центру. Попробовал всё что очевидно, и снова пришёл за советом. 4.7z
  9. Вопрос решился парой кликов мышкой: всего-то нужно быть переставить WrapMode у TImage в положение Stretch - подсмотрел в другой тебе на форуме. Всем спасибо! Очень тронут вниманием, накинутые идеи обязательно запомню и попробую.
  10. Наверное, не уверен что это, но очень красиво! https://drive.google.com/open?id=0B67SdgYATndtc1ZKR1VmaHBURms
  11. Здравствуйте! Align стоит None PC - это неграфический класс, там вся инфа про персонажа (его размер в метрах например - 1,71 м)
  12. Здравствуйте! Очень нравится 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