Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2010, 01:49   #11
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Спасибо за помощь. И, раз уж я спросил (хотя вопрос уже не по теме), чтобы не заводить новую тему, спрошу тут еще об одном. При создании игры я загружал спрайты для анимации персонажей одним файлом в один Bitmap. Далее в таймере, воспроизводящем анимацию, идет копирование кадров через CopyRect из того Bitmap'а со спрайтами в тот, что выводится на форму.

Вопрос вот в чем: это не тупее, чем разбивать спрайт на массив Bitmap'ов, из которого впоследствии будет воспроизводиться анимация? Просто в теме 'Уроки по озданию игр для новичков' я видел, как вы приводили пример, когда анимация именно разбивалась на массив Bitmap'ов, вот и возник такой вопрос.
ZotaC вне форума Ответить с цитированием
Старый 16.01.2010, 11:29   #12
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Тут особой разницы нет, все равно в памяти будет хранится анимация, не важно разбитая на отдельные кадры или нет.
У меня в старой игре на canvas для анимаций был класс, в котором была 1 переменная TBitmap в которой хранились все кадры и CopyRect копировал нужный кадр на экран.
Цитата:
По моим тестам VCL'овский таймер бесполезно ставить меньше чем на 45-50...
В одной статье по таймерам я читал что TTimer работает по интервалами по 55мс.
То есть если interval=1 настоящая скорость 55. Если interval=30 настоящая скорость 55. Если interval=56 настоящая скорость 110.

Последний раз редактировалось Вадим Буренков; 16.01.2010 в 11:35.
Вадим Буренков вне форума Ответить с цитированием
Старый 16.01.2010, 15:48   #13
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от DomiNick
По моим тестам VCL'овский таймер бесполезно ставить меньше чем на 45-50...
Сейчас в программе стоит 31 мс, это 25 кадров в секунду, специально засекал, ...пробовал точный WinIP-таймер - результат одинаковый. Ставлю 30 мс на TTimer все работает чрезмерно быстро и не меняется от 1 до 30 мс. Ставлю 32 мс, получаю сразу замедление, одинаковое от 32 до 50 мс. TTimer имеет одно свойство весьма полезное, ...он оттягивает интервал, если код внутри него не успевает выполниться, ...именно от внутреннего кода зависит точность интервала. С WinIP таймером, если код не успевает выполниться, вся программа подвисает.
Попробуйте протестить в иных условиях.

Цитата:
Сообщение от ZotaC
Вопрос вот в чем: это не тупее, чем разбивать спрайт на массив Bitmap'ов, из которого впоследствии будет воспроизводиться анимация? Просто в теме 'Уроки по озданию игр для новичков' я видел, как вы приводили пример, когда анимация именно разбивалась на массив Bitmap'ов, вот и возник такой вопрос.
Как вам удобно хранить графическую информацию, так и поступайте. Но, я видел примеры, в которых определялся трафарет вырезки, копировался фрагмент в буфер одного кадра анимации, затем этот буфер уже на задний фон общего буфера кадра, ...так вот, лучше сразу помещать вырезку на задний фон, минуя промежуточный буфера кадра. Если у вас так, то хорошо.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 16.01.2010, 16:39   #14
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Но, я видел примеры, в которых определялся трафарет вырезки, копировался фрагмент в буфер одного кадра анимации, затем этот буфер уже на задний фон общего буфера кадра,
Это ты про мой пример ?
Вадим Буренков вне форума Ответить с цитированием
Старый 16.01.2010, 19:04   #15
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Вадим Буренков Посмотреть сообщение
Это ты про мой пример ?
ХЗ чей он, но так не рационально.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BitBlt на контекст DC и его альтернатива notHaker Мультимедиа в Delphi 7 03.12.2009 01:04