![](images/chestnut/misc/left.gif) |
FAQ Туториалы и часто задаваемые вопросы |
30.03.2009, 01:50
|
#1
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
GIF & DrawMovie
По просьбе трудящихся привожу вариант адекватной реализации указания из хелпа:
For animated GIFs, the DrawMovie command simply draws the next frame of the animation each time it is called, so you need to manage your animation timing manually.
|
![](images/chestnut/misc/code_html.gif)
;sample gif-animation
;code: impersonalis, icq 11-999-51-51
;
;GIF: Носферату, поднимающийся по лестнице. Сцена из фильма Носферату. Вячеслав Ошурков. 1922 год.
;(http://ru.wikipedia.org/wiki/Файл:NosferatuVCD_338_0060.gif)
;
;ставим графический режим
Graphics 800,600,32,2
;выбираем задний буфер
SetBuffer BackBuffer()
;грузим мувик
Local MOVIE=OpenMovie("Nosferatu.GIF")
;устанавливаем дефолтную межкадровую задержку в мс
Local GifPause=100;ms
;картинка для хранения текущего кадра (по размерам мувика)
Local OneFrame%=CreateImage(MovieWidth(MOVIE),MovieHeight(MOVIE))
;время последнего апдейта
Local StartTime%=MilliSecs()
;ставим точку вывода картинки в её середину
MidHandle OneFrame
;цикл отрисовки и обработки
While Not KeyHit(1)
;numpad+ скорость растёт (задержка падает)
;частный случай: 0 и отрицательные числа - задержки нет = тест производительности ПК
If KeyHit(78) GifPause=GifPause-25
;numpad- скорость падает
If KeyHit(74) GifPause=GifPause+25
;нужно ли поменять кадр?
If MilliSecs()-StartTime>=GifPause
;открываем буфер кадра
SetBuffer ImageBuffer(OneFrame)
;рисуем кадр через DrawMovie
DrawMovie MOVIE
;закрываем буфер, выбрав задний
SetBuffer BackBuffer()
;меняем время перелистывания кадра
StartTime=MilliSecs()
EndIf
;рисуем кадр
DrawImage OneFrame,GraphicsWidth()/2,GraphicsHeight()/2
AppTitle GifPause+" ms."
Flip
Wend
;убирай за собой!
CloseMovie(MOVIE)
FreeImage OneFrame
;66
End
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 7 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
30.03.2009, 10:27
|
#2
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: GIF & DrawMovie
Хочу лишь отметить что в gif файле может быть задана пауза каждому кадру своя, в этом случае блитз не сможет воспроизвести адекватную анимацию.
__________________
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
30.03.2009, 15:06
|
#3
|
Бывалый
Регистрация: 12.10.2006
Сообщений: 737
Написано 131 полезных сообщений (для 452 пользователей)
|
Ответ: GIF & DrawMovie
угу. вот у меня как раз разные паузы... прийдется видимо переконвертить во что-то...
|
(Offline)
|
|
30.03.2009, 15:10
|
#4
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: GIF & DrawMovie
помоему самый большой минус gif-анимации - это то, что там всего 256 цветов. маловато для современных видеовставок имхо.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо HolyDel за это полезное сообщение:
|
|
23.10.2011, 03:20
|
#5
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: GIF & DrawMovie
Кстати: никто так и не сподобился написать функцию, получающую из файла количество кадров и паузу между ними?
http://www.martinreddy.net/gfx/2d-hi.html
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
23.10.2011, 14:38
|
#6
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений (для 6,853 пользователей)
|
Ответ: GIF & DrawMovie
Дак gif не нужен. В нём нет так нужного в последнее время альфа канала.
Для олдскульных ремейков может и прокатит, но для "новых" проектов нет.
Да и вообще сам формат гиф специфичен. Не охота время терять.
Я даже в Web страницах им пренебрегаю (порой даже напрасно)
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
|
|
23.10.2011, 16:02
|
#7
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: GIF & DrawMovie
под виндой нужно пользоваться .dds (быстрая загрузка, возможность сжатия и более быстрого рендеринга) и хранить кадры в текстурных атласах.
|
(Offline)
|
|
23.10.2011, 16:20
|
#8
|
Бывалый
Регистрация: 10.06.2006
Сообщений: 808
Написано 354 полезных сообщений (для 832 пользователей)
|
Ответ: GIF & DrawMovie
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.10.2011, 17:01
|
#9
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: GIF & DrawMovie
Сообщение от Randomize
Дак gif не нужен.
|
Жаль что гиф из твоей аватары об этом не знает
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
23.10.2011, 17:31
|
#10
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: GIF & DrawMovie
Сообщение от impersonalis
Жаль что гиф из твоей аватары об этом не знает
|
Аватар Рандома, здравствуйте! Это Аватар Автомата вас беспокоит. Да, хорошо, спасибо. Я вот почему звоню: вы наверное, не в курсе, но gif не нужен. Да, именно так. Всё, до свидания.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.10.2011, 17:41
|
#11
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: GIF & DrawMovie
Кстати: никто так и не сподобился написать функцию, получающую из файла количество кадров и паузу между ними?
|
На PHP делал. Ради интереса даже LZW сжатие пытался реализовать, но почему-то у меня на выходе получалось что-то левое и гифка не открывалась, наверно какой-то не такой алгоритм LZW запилил или ошибка где-то была. В общем забил на это дело временно. А потом вообще забил. Я типа делал АПИ для собирания и редактирования анимаций. В принципе разбирал и собирал контейнер удачно. Просто сжатие хотел реализовать, чтобы возможно было использовать глобальную палитру вроде. Если локальная устраивает, то можно было из нескольких gif-ок собирать одну с указанием паузы между кадрами, прозрачности и флага очистки экрана.
|
(Offline)
|
|
23.10.2011, 17:50
|
#12
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: GIF & DrawMovie
Сообщение от ABTOMAT
Аватар Рандома, здравствуйте! Это Аватар Автомата вас беспокоит. Да, хорошо, спасибо. Я вот почему звоню: вы наверное, не в курсе, но gif не нужен. Да, именно так. Всё, до свидания.
|
Дак что же альтернатива (вне игр)?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
23.10.2011, 18:21
|
#13
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений (для 6,853 пользователей)
|
Ответ: GIF & DrawMovie
Сообщение от impersonalis
Дак что же альтернатива (вне игр)?
|
CSS спрайты.
Но для йоба графики типо смайлов и авиков покатит и гиф.
Скажем так: "Гиф нужен там где не серьёзно."
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
23.10.2011, 18:45
|
#14
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: GIF & DrawMovie
ау, посоны, мы вроде бы в разделе про Blitz3D, не?
про какие аватары вообще речь?
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
|
|
23.10.2011, 19:02
|
#15
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: GIF & DrawMovie
Сообщение от ffinder
ау, посоны, мы вроде бы в разделе про Blitz3D, не?
про какие аватары вообще речь?
|
Это да, но в широком аспекте вопрос тоже интересует.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:36.
|