Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мультфильмы, Как делать мультфильмы в Basic? 
:(
    Опции темы
Coca-colchic
  Дата 15.5.2004, 21:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как делать мультфильмы в Basic?
Например, я сделал рисунки в формате .bmp, как теперь их в Basic прокрутить, чтобы сделать мульт?
P. s. Желательно поподробнее пожалуйста exclamation.gif biggrin.gif
  Вверх
chipset
Дата 16.5.2004, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: нет
Всего: 165



Фиг с ним, кодируй в jpg... BMP огромнющие wow.gif
Таймер просто настрой, сделай массив строк на файлы, а вот как JPG просматривать в VB я не знаю sad.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Guest
Дата 16.5.2004, 20:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А можно по-подробнее что писать в таймере и что надо делать, чтобы туда засунуть музыку, звуки? sarcasm.gif
  Вверх
bankuss
Дата 17.5.2004, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 26.3.2004

Репутация: 3
Всего: 4



ерундой занимаетесь... для мультиков есть другие языки программирования, например flash
или накрайняк dark basic
PM MAIL   Вверх
Vach
Дата 17.5.2004, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 17.10.2003
Где: Санкт-Петербург

Репутация: 8
Всего: 18



Пример:
Animate by Image Array
Удачи.
PM MAIL ICQ   Вверх
Guest
Дата 17.5.2004, 17:43 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А где flash скачать? Только скажите русский сайт. И flash белплатный?
  Вверх
bankuss
Дата 18.5.2004, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 396
Регистрация: 26.3.2004

Репутация: 3
Всего: 4



Компакт диски с этим флэшем на каждом углу продаются smile.gif
Документации и книжек тоже завались. Изучай! Может Масяню-2 сделаешь smile.gif
PM MAIL   Вверх
chipset
Дата 18.5.2004, 07:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: нет
Всего: 165



Да.. я помню когда вращающуюся луну сделал на VB то прыгал от радости...
эх... tounge.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Некто
Дата 18.5.2004, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 11.5.2004

Репутация: нет
Всего: нет



А если на VB хочешь писать, то вот что надо: создаешь элементы Image (в каждом один кадр), обЪединяешь их в массив (даешь одинаковые имена), создаешь таймер с интервалом придется поиграть, чтобы выбрать самую подходящую смену кадров, а вот код:
Код

Dim i As Long

Private Sub Timer1_Timer()
Image(i).Visible = True
If i <> 0 Then
Image(i - 1).Visible = False
End If
If i = 99 Then
Timer1.Enabled = False
End If
End Sub

Число 99 зависит от числа кадров.
PM MAIL   Вверх
Гость_виктор
Дата 22.5.2004, 12:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как в VB делаются библиотеки с открытыми функциями или процедурами
  Вверх
cardinal
Дата 25.5.2004, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата
А где flash скачать? Только скажите русский сайт. И flash белплатный?

Coca-colchic, ты почему вобще это дело в VB затеял? И почему ты тогда так испугался, когда тебе сказали, что для этого есть flash? Ну есть. Ну и что. Посмотри пример, который тебе Vach дал. Проще некуда! Лично я во flash'е ничего не соображаю, но кажется мне, что во flash'e легче чем в этом примере не будет. Может я ошибаюсь...
Добавлено @ 01:48
Цитата
Как в VB делаются библиотеки с открытыми функциями или процедурами

Модератор: Пожалуйста, один топик - один вопрос.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
ulukbek
Дата 22.9.2004, 12:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как добавить учетную запись (почту) в Outlook Express 5 из yahoo.com
  Вверх
Desdichado
Дата 11.11.2004, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 5.4.2004
Где: Киев

Репутация: нет
Всего: 10



Cразу скажу, что Visual Basic не подходит для создания мультфильмов, для этого надо использовать какой-нибудь другой редактор. Но иногда в программе необходимо сделать маленькое слайд шоу или еще что-нибудь, что требует смены рисунков с заданным интервалом времени, средства Visual Basic'а это позволяют.

Подготовка рисунков (кадров).
Для начала нарисуйте несколько рисунков (кадров) для вашего мультфильма, это можно сделать в любом графическом редакторе и сохраните их с именами 0.*, 1.*, 2.* : (*.bmp, *.gif, *jpg) Запустите Visual Basic и создайте новый проект.

Визуальное проектирование.
Откройте форму, выберите Image (рисунок) в панели инструментов и поместите элемент Image на форму. Нажмите на добавленный элемент Image, в панели Properties в свойство Name, впишите "imgPicture", найдите свойство Visible и установите его как False.

Затем необходимо создать массив элементов Image. Нажмите на ваш элемент Image, который вы назвали, как "imgPicture". Нажмите Ctrl+C, что бы скопировать элемент Image в буфер обмена. Затем нажмите Ctrl+V. У вас на экране появится сообщение: "You already have a control named 'imgPicture'. Do you want to create a control array?" (перевод: "У вас уже есть элемент с именем 'imgPicture'. Хотите ли вы создать массив элементов?).

Нажмите Yes (Да). На форму добавится еще один элемент Image с именем imgPicture и порядковым номером 1. Обратите внимание, что элемент Image, который был добавлен первым, получил номер 0. Порядковый номер элемента определяется свойством Index. В панели Properties вы можете увидеть, что свойство Index одного из элементов равно 0, а другого 1. Нажмите на элемент imgPicture(0) и в панели Properties найдите Picture, справа от этого свойства нажмите на маленькую кнопочку ":" и в открывшемся окне выберите файл с первым кадром вашего мультфильма, если вы еще не нарисовали кадры, сделайте это. Рисунок, который вы выбрали, появится в элементе imgPicture(0). То же сделайте для imgPicture(1). Для добавления новых элементов Image, щелкните по любому из уже созданных элементов (imgPicture(0) или imgPicture(1)) и нажмите Ctrl+C, а затем нажмите Ctrl+V. Создайте их столько, сколько кадров вы нарисовали, но не забывайте, что первый элемент имеет номер 0 (например, если вы создали 5 кадров, то последний элемент будет иметь номер 4). Так же не забудьте вставлять в них ваши рисунки (кадры).

После этого выберите PictureBox в панели инструментов и поместите графическое окно на форму. Нажмите на только что созданное окно и в панели Properties в свойство Name, впишите "picPicture", найдите свойство AutoSize и установите его как True.

Теперь на панели инструментов найдите значок Timer и дважды щелкните по нему. Элемент Timer добавится на форму. Нажмите на него и в панели Properties в свойство Name, впишите "tmrTimer". Теперь необходимо установить интервал смены рисунков. В панели Properties найдите Interval, впишите туда что-нибудь типа 100, это означает, что ваши рисунки будут меняться с интервалом в 100 миллисекунд.

Пишем программный код.
Откройте окно программного кода (View-Code), впишите:

Dim y As Integer

Вы объявили глобальную переменную y.
Затем перейдите обратно на форму (View-Object) и дважды щелкните по таймеру (tmrTimer), откроется окно программного кода, введите:

y = y + 1: If y = imgPicture.Count Then y = 0 picPicture.Picture = imgPicture(y).Picture

Теперь каждые 100 миллисекунд переменная "y" будет увеличиваться на 1 и рисунок в picPicture будет равен рисунку imgPicture(y). Если переменная "y" достигнет значения равного номеру последнего кадра (imgPicture.Count), то мультфильм начнет проигрываться заново.

Заключение.
Вы закончили работу над программой теперь посмотрим на нее в действии. Нажмите F5 или щелкните на кнопку со стрелкой повернутой вправо, которая расположена на панели инструментов. Если вы все сделали правильно, программа запустится, и вы увидите, как в picPicture меняются рисунки


--------------------
Я, объявляю свой дом безъядерной зоной...
PM MAIL ICQ   Вверх
Akina
Дата 11.11.2004, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата
y = y + 1: If y = imgPicture.Count Then y = 0

y=(y+1) MOD imgPicture.Count


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Гость_Старуха
Дата 11.11.2004, 12:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вот в Интернете нашла.
Анимация
Ура!!! Я так долго ждал этого момента! Сейчас ты научишься работать с анимацией.
Как мы все знаем фильм это набор картинок, последовательно сменяющих друг друга. В VB картинки сменяться будут с помощью таймера - оно и понятно, любое движение это движение во времени.
Сейчас мы сделаем мультик из девятнадцати кадров, для этого расположи двадцать объектов Image. Для удобства у первого изображения оставь стандартное имя, а у остальных с img1 до img19 и присвой каждой по последовательной картинке соответственно. Расположи на форме таймер и установиу него Interval как 1 и выключи его. Расположи на форме кнопку, по нажатии которой мы и включим наш таймер.
Не буду тебя долго мучить, вот код для мультика:

Dim a As Integer

Private Sub Command1_Click()
Timer1.Enabled = True
a = 19
Command1.Visible = False
End Sub

Private Sub Timer1_Timer()
a = a - 1

If a = 19 Then
Image1.Picture = img1.Picture
End If
If a = 18 Then
Image1.Picture = Img2.Picture
End If
If a = 17 Then
Image1.Picture = Img3.Picture
End If
If a = 16 Then
Image1.Picture = Img4.Picture
End If
If a = 15 Then
Image1.Picture = Img5.Picture
End If
If a = 14 Then
Image1.Picture = Img6.Picture
End If
If a = 13 Then
Image1.Picture = Img7.Picture
End If
If a = 12 Then
Image1.Picture = Img8.Picture
End If
If a = 11 Then
Image1.Picture = img9.Picture
End If
If a = 10 Then
Image1.Picture = img10.Picture
End If
If a = 9 Then
Image1.Picture = img11.Picture
End If
If a = 8 Then
Image1.Picture = img12.Picture
End If
If a = 7 Then
Image1.Picture = img13.Picture
End If
If a = 6 Then
Image1.Picture = img14.Picture
End If
If a = 5 Then
Image1.Picture = img15.Picture
End If
If a = 4 Then
Image1.Picture = img16.Picture
End If
If a = 3 Then
Image1.Picture = img17.Picture
End If
If a = 2 Then
Image1.Picture = img18.Picture
End If
If a = 1 Then
Image1.Picture = img19.Picture
End If
If a = 1 Then
a = 19
End If
End Sub
Никогда не используй для анимации картинки формата Jpeg (*.jpg) или прочие сжатые файлы! При распаковке получается эффект мерцания, это занимет дополнительные ресурсы процессора и памяти! Используй только "чистые" картинки (*.bmp).
Запомни! Сэкономишь на размере - потеряешь в качестве, а на качестве не экономят!!!

  Вверх
korob2001
Дата 11.11.2004, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Может я ошибаюсь, но помоему вместо всех этих условий If....End If гораздо разумнее воспользоваться Select Case a ..... End Select.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
cardinal
Дата 11.11.2004, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Старуха, а не проще каждому img по индексу раздать? smile
Код

Dim a As Integer

Private Sub Command1_Click()
Timer1.Enabled = True
a = 19
Command1.Visible = False
End Sub

Private Sub Timer1_Timer()
a = a - 1
Image1.Picture = img(a).Picture
End Sub

Ну и таймер неплохо было бы выключить если он больше не нужен.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Staruha
Дата 11.11.2004, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 2
Всего: 27



Ну вот я думаю можно тему закрывать smile
(а тот код из обучалки ,для начинающих) smile


--------------------
Возмездие настигнет
PM MAIL   Вверх
korob2001
Дата 11.11.2004, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Меня интересует по данной теме ещё такой вопрос:
Каким способом лучше всего создавать анимацию? С помощью таймера или цикла с DoEvents?
У меня в одной книге написано что с циклом можно добиться большей скорости смены кадров, чем с таймером.

Модератору:
Извини что не создал отдельный топ для данной темы, просто вопрос вполне подходит под эту тему.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
-Mikle-
Дата 11.11.2004, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Да хоть че используй, смотря с какой скоростью тебе анимировать надо...
На таймер, больше чем 40 кадров в секунду не рассчитывай...
в цикле, можно и больше добиться...



--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
korob2001
Дата 11.11.2004, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Всё понял. Спасибо.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
cardinal
Дата 11.11.2004, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(korob2001 @ 11.11.2004, 21:16)
Каким способом лучше всего создавать анимацию?

Прямым обращением к видео карте smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
-Mikle-
Дата 12.11.2004, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 8
Всего: 59



Цитата(cardinal @ 12.11.2004, 03:47)
Прямым обращением к видео карте

И напрямую из VB, минуя всякие там DirectX'ы smile


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Гость_Vladimir
Дата 17.2.2005, 12:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Кто нибудь знает как настроить Outlook Express на Yahoo.com
у меня нихрена не получается
что писать в строке сервера pop3 и smtp
  Вверх
cardinal
Дата 17.2.2005, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Модератор: Пожалуйста, один топик - один вопрос.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Exception
Дата 17.2.2005, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Цитата
Кто нибудь знает как настроить Outlook Express на Yahoo.com
у меня нихрена не получается
что писать в строке сервера pop3 и smtp

На топик посмотри! Хренась, "Анимация"!!!
При чем тут Outlook, Yahoo.com и pop3 с smtp???
Ты кажца заблудился smile

PM   Вверх
~FoX~
Дата 18.2.2005, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 10
Всего: 68



Вот если кому интересно, я тут статейку накатал.......

2D анимация.

И так приступим.

Для работы нам понадобиться API функция - BitBlt.

Функция BitBlt выполняет передачу битовых блоков данных о цвете, соответствующих прямоугольнику пикселей из заданного исходного контекста устройства в целевой контекст устройства. И лежит она в Gdi32.lib

А вот её С прототип:

Код


BOOL BitBlt(
HDC hdcDest, // дескриптор целевого контекста устройства
int nXDest,  // X-координата левого верхнего угла целевого прямоугольника
int nYDest,  // Y-координата левого верхнего угла целевого прямоугольника
int nWidth,  // ширина целевого прямоугольника
int nHeight, // высота целевого прямоугольника
HDC hdcSrc,  // дескриптор исходного контекста устройства
int nXSrc,   // X-координата левого верхнего угла исходного прямоугольника
int nYSrc,   // Y-координата левого верхнего угла исходного прямоугольника
DWORD dwRop  // код операции
);



А возвращает эта функция не ноль если все прошло успешно и ноль если в чем то проблема.

Жутко выглядит на первый взгляд, не правда ли?
Но не пугайтесь ни чего страшного в ней нет.

Переходим к практике.
Первым делам создаем новый проект. И объявляем в области General нашу функцию. А объявляется она следующим образом:

Код


Private Declare Function BitBlt Lib "gdi32" _
 (ByVal hDestDC As Long, _
  ByVal X As Long, _
  ByVal Y As Long, _
  ByVal nWidth As Long, _
  ByVal nHeight As Long, _
  ByVal hSrcDC As Long, _
  ByVal xSrc As Long, _
  ByVal ySrc As Long, _
  ByVal dwRop As Long) As Long



Дальше мы опишем несколько глобальных переменных необходимых нам для работы:

Код


Dim PicHeight As Single 'высота картинки
Dim PicWidth As Single,'ширина картинки
Dim SKadr As Integer 'счетчик кадров



Теперь будем рисовать smile
А нарисуем мы несколько картинок быстрый просмотр которых даст эффект движения (как кадры в мультиках).
Но этого недостаточно. Дабы на нашей картинки мы могли использовать прозрачный цвет (ну скажем что нарисовать бублик с дыркой в середине) нам необходимы маски наших картинок. Маска выглядят точно так же как и картинка, но все цвета не являющиеся цветом фона обращены в черный. Такое можно изобразить в любом граф. редакторе.

И так у меня получилось 6 изображений (кадров) и соответственно 6 изображений масок.
Дальше мы открываем нашу форму и устанавливаем свойство AutoRedraw в значение True. Теперь на понадобиться массив из 6 Image, в которые мы загрузим наши кадры и 6 Image, в которые мы загрузим наши маски. Внимательно следите что бы кадр и маска к этому кадру имели одинаковые индексы. Первый массив мы назовем Kadr(), а второй соответственно Msk(). Установим у всех Image свойства Visible=False, AutoRedraw=True, AutoSize=True.
Теперь бросаем на форму таймер и устанавливаем свойство Interval ну например 50.
И еще на понадобиться два PictureBox для вывода нашего изображения. Кстати их тоже сделаем невидимыми Visible=False.

Все приготовления завершены, приступаем к кодингу:

Первое что мы делаем это узнаем размер картинки которую мы будем показывать:


Код


Private Sub Form_Load()
Skadr=0
PicHeight = Kadr(SKadr).Width
PicWidth = Kadr(SKadr).Height
End Sub



Теперь добавим процедуру в наш таймер.

Код


Private Sub Timer1_Timer()

Me.Cls 'Очистим нашу форму

PictureBox1.Picture = Msk(i).Picture
PictureBox2.Picture = Kadr(i).Picture

'Приступим к рисованию
BitBlt Me.hDC, 0, 0, PicWidth, PicHeight, PictureBox1.hDC, 0, 0, vbMergePaint
BitBlt Me.hDC, 0, 0, PicWidth, PicHeight, PictureBox2.hDC, 0, 0, vbSrcAnd

'Обновимся
Me.Refresh

'Увеличиваем счетчик кадров
'и если счетчик превосходит количество кадров возвращаем его в 0
SKadr = SKadr + 1
If SKadr > (Kadr.Count - 1) Then SKadr = 0

End Sub



Все готово!!! Можете пробывать запускать проект и наблюдать как у вас на форме происходит невообразимой кросаты действо называемое анимацией

З.Ы.Статья не претендует на полноту изложения, она просто описывает один из вариантов воспроизведения анимации.

З.З.Ы. Надеюсь она кому ни будь поможет.



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
cardinal
Дата 18.2.2005, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Уже в FAQ'e smile

VB-ART-002308


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Voldemar2004
Дата 4.4.2005, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Вот посмотрите:
Timer.Index = 0,
2-a PictureBox

в General

Код

Const f_name = "mult.bmp"   ' имя файла, содержащего
                            ' кадры фильма
Const Nframe = 5           ' количество кадров в фильме
                            '(для данного файла)
Dim fW As Integer           ' ширина и высота кадра
Dim fH As Integer
Dim currentFrame As Integer ' номер текущего кадра



Код


Private Sub Form_Initialize()
   Picture2.Visible = False
   Picture2.AutoSize = True
   ' фильм загружается в Picture2 полностью, а затем
   ' по кадрам выводится в Picture1
   Picture2.Picture = LoadPicture(CurDir + "\" + f_name)
           
   fW = Round(Picture2.Width / Nframe)
   fH = Picture2.Height
   
   Picture1.Height = fH
   Picture1.Width = fW
   
   currentFrame = 1
   
   Timer1.Interval = 100
   Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
   ' если выводились все кадры -  переход к первому
   If currentFrame > Nframe Then currentFrame = 1
      
   ' вывод кадра
   Picture1.PaintPicture Picture2.Picture, _
   0, 0, , , fW * (currentFrame - 1), 0, fW, fH
   ' PaintPicture выводит часть Picture2.Picture в
   ' Picture1.Picture:
   ' 0, 0 - координаты левого верхнего угла области вывода,
   ' fW * (currentFrame - 1), 0 - координаты начала области,
   ' из которой будет копироваться изображение,
   ' fW, fH - размеры копируемой области
    
   currentFrame = currentFrame + 1
End Sub


Добавлено @ 21:19
ПРимер взял из "Освой на примерах", Никита Культин автор книги. В качестве фоток хотел использовать свой аватарчик (Осла из Фильма), но сделал Ogg Vorbis Fish.
ЧЕрт потерял у вас тут кнопку "присоединить файл" - послал бы mult.bmp c примерчиком.

Это сообщение отредактировал(а) Voldemar2004 - 4.4.2005, 21:20


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
~FoX~
Дата 5.4.2005, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 10
Всего: 68



Цитата(cardinal @ 18.2.2005, 19:33)
Уже в FAQ'e

Дякою smile


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
cardinal
Дата 30.6.2005, 03:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата
Дякою

smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
korob2001
Дата 30.6.2005, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Дякою == Спасибо
только наверное правильнее будет дякую, а может и нет. smile


Это сообщение отредактировал(а) korob2001 - 30.6.2005, 08:54


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
cardinal
Дата 2.7.2005, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Voldemar2004, пожалуйста поменьше флейма...
Цитата(korob2001 @ 30.6.2005, 06:53)
Дякою == Спасибо

Спасибо, буду знать...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Xeim
Дата 3.12.2005, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 186
Регистрация: 17.11.2005

Репутация: нет
Всего: 0



Я бы тоже мультик на ВБ зделал, да лень читать всю эту ерунду. А так вобще хорошо написано. Зачот.
Помню раньше делал кучу хороших мультиков. Но никто не заценил (не доходит). smile
PM MAIL   Вверх
NewSWA
Дата 11.12.2005, 05:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 2.12.2005

Репутация: нет
Всего: нет



Весь процесс создания можно упростить, для этого в качестве анимации графики используем анимированные *.Gif файлы, а модулей для их проигрывания в нете давольно много. Проблему составляет, как мне кажется, только звук
PM MAIL   Вверх
KEKCCCP
Дата 25.12.2005, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 19.8.2005

Репутация: нет
Всего: нет



Desdichado, "%?%?№ писать тут болтовни столько... ! smile smile

Это сообщение отредактировал(а) cardinal - 26.12.2005, 17:07
PM MAIL   Вверх
cardinal
Дата 26.12.2005, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Модератор: KEKCCCP, думай в след. раз, что говоришь!



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0922 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.