|
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
|||||||||||
Каким способом лучше всего и быстрее выводить анимацию?13.10.2016, 11:27. Показов 1675. Ответов 9
Метки builder, cbuilder, componentcount, components, doublebuffered, doublebuffered в цикле, dynamic_cast, parentdoublebuffered, twincontrol, вывод кадров, вывод картинок, вывод спрайтов, рисование, цикл по компонентам, цикл по контролам (Все метки)
обычно делаю таким вот способом
но хотелось бы вот это всё сделать как то подругому вообще в корне. потому что анимаций разных много и друг на друга их каждый раз накладывать слишком затратно для ресурсов компа... подскажите ведь должен быть другой способ?
0
|
|||||||||||
| 13.10.2016, 11:27 | |
|
Ответы с готовыми решениями:
9
Каким способом лучше визуализировать задачу?
Каким способом лучше нарисовать подобную стрелу на QGraphicsScene |
|
|
|
| 13.10.2016, 13:54 | |
|
Компоненты TBitmap/TJPEGImage/TGIFImage/TPngImage - они предназначены для загрузки, хранения и конвертации разных форматов. А выводят они одинаково, на имеющемся API системы, под виндою всё будет через битмап.
Добавлено через 19 секунд А где у вас тут "анимация"-то?
0
|
|
|
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
|
| 13.10.2016, 16:18 [ТС] | |
|
Ну раскадрованая анимация... Выводится на канву через таймер. Я хотел узнать как правильно делать это по стандартам потому что если много анимаций все лагает а ФПС как в играх не имеет никакого значения в таком случае. Я думаю что должно быть как то так:
Сначало на масив инт задний фон (рисунок)накладываются цифры с других спрайтов. В бмп там же вроде на 1 пиксель 3 байта и потом приведение типа из инт в битмап и на канву полное изображение т.к. накладывать по 100 раз друг на друга дольше будет а так он в уме посчитает... Ну по крайней мере обработчиков меньше будет задействовано. Но может быть это велосипед и уже все придумано проще. Ну библиотека например какая-то... Желательно с примером пож
0
|
|
|
|
|||||||||||
| 13.10.2016, 17:57 | |||||||||||
|
Варианта два:
Сколько у вас одновременно элементов/картинок/фрагментов на экране? Добавлено через 2 минуты Общая рекомендация Добавлено через 5 минут Версия Builder?
Добавлено через 6 минут У каждого потомка TWinControl есть DoubleBuffered. А если версия Builder старая (у формы нету свойства ParentDoubleBuffered) - можно задать всем в цикле:
Не поможет - тогда показывайте полностью как сейчас делаете.
0
|
|||||||||||
|
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
|
| 13.10.2016, 20:28 [ТС] | |
|
Двойной буфер использую. Но возможно не понимаю что он даёт именно. Как я понимал для того чтобы изображение не "мерцало" . задавал в инспекторе да. Рад студия 10 у меня привык к ней.
Важный вопрос: мой вариант при выводе изображения на экран использует видеопамять? То что изображение хранится-обрабатывается не в видео памяти сильно сказывается на производительности? У меня к примеру листья шевелятся, но поверх ещё может другая анимация быть и почему то мне кажется что на этом можно как то секаномить. У меня сначало рисуется задний фон. А другие объекты которые по нему проходят на имэйдже другой канвы. И выходит что у меня куча имейджей друг на друге чтобы не отрисовывать каждый раз весь экран целиком. я стираю предыдущую анимацию и рисую новую координатами. А стираю анимацию прозрачным цветом. У меня есть заставка в которой 120 полноэкранных кадров. Так вот она жутко тормозит. Может быть дело в видеопамяти... Добавлено через 11 минут Можно пример пожалуйста как загрузить и вывести на экран изображение с опенжл или директор? Добавлено через 6 минут Ну у меня нетбук просто бомжовский. Но всеравно не должно быть такого я считаю. А вот что именно почему я могу только догадываться
0
|
|
|
|
||||||
| 13.10.2016, 21:08 | ||||||
|
VCL на GDI, то есть в обычной оперативке, на ЦП.
На нетбуке скорее всего с видеопамятью будет не лучше. Я ж не вижу "какого". Ну дак если такую заготовку использовать - как что будет?:
0
|
||||||
|
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
||||||||||||||||
| 14.10.2016, 09:47 [ТС] | ||||||||||||||||
|
BOGG ART, ну я в ваш код попробовал... вот мой
и ещё я у вас заметил что есть вот это:
дабл буфер кстати тоже не влияет на фпс... но этот лок унлок мне вот напомнил одну вещь... что как раз таки куча имейджей плохая идея... и лучше весь экран каждый раз перерисовывать поновой чем что то стирать на других эмейджах.. я просто писал очень давно игру и хотелось бы исключить косяки с которыми я могу столкнуться в новой игре (тут я планирую намного больше анимации) Добавлено через 3 минуты хотя впринципе если как то этим лок унлоком подстаканить с другими имейджами то может быть не будет такого снижения фпс... но вот он только автоматически выполняется и вообще никак не реагирует программа на его присутствие у меня... к примеру я ставлю и ничего не происходит
спасибо. это меня натолкнуло на пару мыслей хороших которые решили мой вопрос... но было бы идеально если бы ещё попробовать тоже самое с директом\опенжл Добавлено через 2 часа 49 минут сейчас чот смотрю директ обучение какие то треугольники нарисованы 4000 фпс но какой именно сдк и как его в рад студию я ещё пока непонял, и какой код там должен быть незнаю
0
|
||||||||||||||||
|
|
|
| 14.10.2016, 15:06 | |
|
Рисовать надо в FormPaint. Timer нужен только один, а interval можно ставить не меньше 50.
И как просто вопрос - какие ещё "4000 фпс", когда мониторы стока физически не способны выводить? Особенно на старом нетбуке. А глаза человеческие тоже "снимают кадры" намного реже.
0
|
|
|
6 / 6 / 3
Регистрация: 03.01.2012
Сообщений: 449
|
|
| 14.10.2016, 16:24 [ТС] | |
|
не ну выполнять функцию вывода ему от этого ничего не мешает
понятное дело что ограничение есть у вышестоящих функций и они определяют когда показывается картинка а когда ждёт своей очереди.... но дело в производительности... я вот на нет буке столкнулся в прошлой игре с проблемой того что у меня оперативная память просто закончилась и всё... а там была и локальная сеть и огромная карта с искуственным интелектом. а хочется чтобы мои игры запускались на всем даже на доисторическом нетбуке. вот я сейчас ещё скачиваю что то, но похоже на вижуал студию придется переходить если я разберусь с директиксом. на ней как то попроще с инфой по этому поводу
0
|
|
|
|
|
| 14.10.2016, 19:39 | |
Сообщение было отмечено lips как решение
Решение
Любая операция тратит как минимум время. Поэтому не надо гоняться за мифическим ФПС, а выводить только тогда когда это реально надо. "На экране ничего не изменилось, но мы всё равно обновим неменявшийся кадр 146 раз" - нафига?
![]() В современных играх потипу "Марио" этот ФПС не выше 12 - и никто не жаловался, всё нормально анимируется.
0
|
|
| 14.10.2016, 19:39 | |
|
Помогаю со студенческими работами здесь
10
Каким способом лучше подключать внешние скрипты/библиотеки? Каким способом лучше разить строку: через регулярки или сплитом? Как лучше всего выводить инфу из бд? Каким лучше всего делать сайт? Каким сервис лучше всего воспользоватся для прогон Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|