Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898

Спрайты из PNG картинок

28.02.2016, 21:45. Показов 3338. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Меня интересует как работать со спрайтами не bmp а PNG
На Image должен ложится TPNGObject как отдельный объект чтобы к примеру при его перетаскивании не пострадала карта которая нарисована тайлами посредством Draw
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.02.2016, 21:45
Ответы с готовыми решениями:

Несколько png картинок в 1 image
Собственно я тут задался вопросом. В Lasarus я обнаружил поддержку PNG НО САМ МОДУЛЬ PNGImage я ненашел. Собственно я хотел спросить...

Создать Gif-анимацию из картинок .png
Есть несколько png картинок, которые я сохраняю на диск с помощью Gdi+ Save(), нужно создать из них один анимационный Gif-файл. Много...

Массовая оптимизация картинок jpg png
Добрый день уважаемые. Подскажите, пожалуйста чем вы пользуетесь для оптимизации размеров картинок(без потери качества)? Лично я перед...

10
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
29.02.2016, 06:31
рисовать надо не посредством TImage и не будет проблем при перетаскивании
Перетаскивание элементов на форме и привязка к элементу
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
01.03.2016, 17:40  [ТС]
Пока решил каждого объекта или персонажа выводить элемнетом TImage
Дело в том что объекты и персонажи управления имеют не клавишами а мышкой. К примеру кликаем на объект и появляется клетки (Timage) на которве кликаем для того чтобы персонаж совершил ход.
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
01.03.2016, 17:51
"дело в том" намекает, что есть логическая связь между первым и вторым
а ее нет ))
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
01.03.2016, 18:09  [ТС]
Ну используя спрайты. Тут еще собственную кучу событий писать прийдется. Собственно имаджи это только для теста никак не для окончательного варианта. Может быть и работать не будет точнее лагать будет тогда от имаджей прийдется отказываться
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
01.03.2016, 21:20
будет
поэтому я привел пример, где все эти грабли уже обойдены
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
05.03.2016, 15:35
Alexandr_7,
Можно использовать карту или что там не png формата и
самый простой вариант рисовать нужные тайлы в нужных местах канвой но можно и в Image
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
12.03.2016, 17:13  [ТС]
Может мне кто написать примерчик по вывода спрайта PNG с прозрачностью и при клике по нему выполнять определенное событие. Нужна также скорость обработки.
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
12.03.2016, 18:40
я в первом же посте дал ссылку именно на то
0
 Аватар для Alexandr_7
87 / 22 / 6
Регистрация: 29.12.2015
Сообщений: 1,898
13.03.2016, 18:07  [ТС]
мне еще нужна вопрос по созданию спрайта из png каротинки не только. Темболнее что ператаскивание не требуется требуется событие
Тоесть отобразить спрайт на TImage и при клике по спрайту делать то или иное действие
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
14.03.2016, 09:02
Лучший ответ Сообщение было отмечено Alexandr_7 как решение

Решение

я попробую последний раз
(специально переименовал везде, чтобы было прямо видно слово Sprite)
вот событие OnMouseDown
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm2.pb1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  sprite:TSprite;
begin
  sprite := MouseToSprite(x,y);
  if sprite<>NIL then
  begin
    sprite.Selected := True;
    sprite.DragCrd := Point(X,y)-sprite.Coords.TopLeft;
  end;
end;
здесь при нажатии определяется, не попали ли мы в какой-нибудь спрайт
и если попали, то что нам мешает
Цитата Сообщение от Alexandr_7 Посмотреть сообщение
при клике по спрайту делать то или иное действие
??
здесь в логику программы заделано перетаскивание, если не требуется - уберите его обработку в событии OnMouseMove
там аж 11 строк посвящено ему
Delphi
1
2
3
4
5
6
7
8
9
10
11
  if Shift=[ssLeft] then
  begin
    for I := 0 to Sprites.Count-1 do
    begin
      if Sprites[i].Selected then
      begin
        Sprites[i].Coords.SetLocation(Point(X,Y) - Sprites[i].DragCrd);
        pb1.Invalidate;
      end;
    end;
  end
я пытаюсь общий принцип объяснить
все независимые друг от друга слои должны выводиться на итоговый холст отдельно!
карта должна быть в своем битмапе, каждый спрайт - в своем
и процедура отрисовки чаще всего тоже проходит в отдельном битмапе
только потом результат рисуется на PaintBox

и никаких визуальных объектов типа TImage при этом не должно быть, только виртуальные. Иначе потом не оберетесь проблем и с масштабированием и с перерисовкой всего этого добра...

вот переименованная версия с PNG битмапами
Вложения
Тип файла: 7z SpriteDemo.7z (2.63 Мб, 54 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.03.2016, 09:02
Помогаю со студенческими работами здесь

API для фоновых png картинок
Собственно наткнулся на один интересный проект, в нём используется новый класс, и API функция для поддержки фоновых картинок формы с...

Наложить 10 png картинок поверх фоновой в picturebox
Здравствуйте. Как можно вывести 10 png картинкок (картинки с прозрачным фоном в формате png. Сами картинки непрозрачные но при сохранении...

Как сделать генератор изображений из выбранных картинок и сохранять в формат .png?
Как сделать генератор изображений из выбраных картинок и сохранять в формат .png

Сохранение всех картинок (в формат png) из Word файла в отдельную папку
Всем доброго времени суток Прошу помощи в создании макроса, суть которого являеться сохранением всех картинок(в формат png) из Word файла...

Вращение TImage c PNG. Нужна переделка решения для BMP под PNG
Здравствуйте. Очень нужна помощь с вращением. Есть решение данной проблемы для формата bmp :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru