![]() |
|
Модераторы: Akina |
![]()
|
|
| Coca-colchic |
|
|||
|
Unregistered |
Как делать мультфильмы в Basic?
Например, я сделал рисунки в формате .bmp, как теперь их в Basic прокрутить, чтобы сделать мульт? P. s. Желательно поподробнее пожалуйста |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 165 |
Фиг с ним, кодируй в jpg... BMP огромнющие
Таймер просто настрой, сделай массив строк на файлы, а вот как JPG просматривать в VB я не знаю --------------------
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
А можно по-подробнее что писать в таймере и что надо делать, чтобы туда засунуть музыку, звуки?
|
|||
|
||||
| bankuss |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 26.3.2004 Репутация: 3 Всего: 4 |
ерундой занимаетесь... для мультиков есть другие языки программирования, например flash
или накрайняк dark basic |
|||
|
||||
| Vach |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 17.10.2003 Где: Санкт-Петербург Репутация: 8 Всего: 18 |
||||
|
||||
| Guest |
|
|||
|
Unregistered |
А где flash скачать? Только скажите русский сайт. И flash белплатный?
|
|||
|
||||
| bankuss |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 26.3.2004 Репутация: 3 Всего: 4 |
Компакт диски с этим флэшем на каждом углу продаются
Документации и книжек тоже завались. Изучай! Может Масяню-2 сделаешь |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 165 |
Да.. я помню когда вращающуюся луну сделал на VB то прыгал от радости...
эх... --------------------
|
|||
|
||||
| Некто |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 11.5.2004 Репутация: нет Всего: нет |
А если на VB хочешь писать, то вот что надо: создаешь элементы Image (в каждом один кадр), обЪединяешь их в массив (даешь одинаковые имена), создаешь таймер с интервалом придется поиграть, чтобы выбрать самую подходящую смену кадров, а вот код:
Число 99 зависит от числа кадров. |
|||
|
||||
| Гость_виктор |
|
|||
|
Unregistered |
Как в VB делаются библиотеки с открытыми функциями или процедурами
|
|||
|
||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Coca-colchic, ты почему вобще это дело в VB затеял? И почему ты тогда так испугался, когда тебе сказали, что для этого есть flash? Ну есть. Ну и что. Посмотри пример, который тебе Vach дал. Проще некуда! Лично я во flash'е ничего не соображаю, но кажется мне, что во flash'e легче чем в этом примере не будет. Может я ошибаюсь... Добавлено @ 01:48
Модератор: Пожалуйста, один топик - один вопрос. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| ulukbek |
|
|||
|
Unregistered |
Как добавить учетную запись (почту) в Outlook Express 5 из yahoo.com
|
|||
|
||||
| Desdichado |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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 меняются рисунки -------------------- Я, объявляю свой дом безъядерной зоной... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
y=(y+1) MOD imgPicture.Count -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Гость_Старуха |
|
|||
|
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 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Может я ошибаюсь, но помоему вместо всех этих условий If....End If гораздо разумнее воспользоваться Select Case a ..... End Select.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Старуха, а не проще каждому img по индексу раздать?
Ну и таймер неплохо было бы выключить если он больше не нужен. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 2 Всего: 27 |
Ну вот я думаю можно тему закрывать
(а тот код из обучалки ,для начинающих) -------------------- Возмездие настигнет |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Меня интересует по данной теме ещё такой вопрос:
Каким способом лучше всего создавать анимацию? С помощью таймера или цикла с DoEvents? У меня в одной книге написано что с циклом можно добиться большей скорости смены кадров, чем с таймером. Модератору: Извини что не создал отдельный топ для данной темы, просто вопрос вполне подходит под эту тему. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
Да хоть че используй, смотря с какой скоростью тебе анимировать надо...
На таймер, больше чем 40 кадров в секунду не рассчитывай... в цикле, можно и больше добиться... -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Всё понял. Спасибо.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Прямым обращением к видео карте -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
И напрямую из VB, минуя всякие там DirectX'ы -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| Гость_Vladimir |
|
|||
|
Unregistered |
Кто нибудь знает как настроить Outlook Express на Yahoo.com
у меня нихрена не получается что писать в строке сервера pop3 и smtp |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Модератор: Пожалуйста, один топик - один вопрос.
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
На топик посмотри! Хренась, "Анимация"!!! При чем тут Outlook, Yahoo.com и pop3 с smtp??? Ты кажца заблудился |
|||
|
||||
| ~FoX~ |
|
||||||||||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
Вот если кому интересно, я тут статейку накатал.......
2D анимация. И так приступим. Для работы нам понадобиться API функция - BitBlt. Функция BitBlt выполняет передачу битовых блоков данных о цвете, соответствующих прямоугольнику пикселей из заданного исходного контекста устройства в целевой контекст устройства. И лежит она в Gdi32.lib А вот её С прототип:
А возвращает эта функция не ноль если все прошло успешно и ноль если в чем то проблема. Жутко выглядит на первый взгляд, не правда ли? Но не пугайтесь ни чего страшного в ней нет. Переходим к практике. Первым делам создаем новый проект. И объявляем в области General нашу функцию. А объявляется она следующим образом:
Дальше мы опишем несколько глобальных переменных необходимых нам для работы:
Теперь будем рисовать А нарисуем мы несколько картинок быстрый просмотр которых даст эффект движения (как кадры в мультиках). Но этого недостаточно. Дабы на нашей картинки мы могли использовать прозрачный цвет (ну скажем что нарисовать бублик с дыркой в середине) нам необходимы маски наших картинок. Маска выглядят точно так же как и картинка, но все цвета не являющиеся цветом фона обращены в черный. Такое можно изобразить в любом граф. редакторе. И так у меня получилось 6 изображений (кадров) и соответственно 6 изображений масок. Дальше мы открываем нашу форму и устанавливаем свойство AutoRedraw в значение True. Теперь на понадобиться массив из 6 Image, в которые мы загрузим наши кадры и 6 Image, в которые мы загрузим наши маски. Внимательно следите что бы кадр и маска к этому кадру имели одинаковые индексы. Первый массив мы назовем Kadr(), а второй соответственно Msk(). Установим у всех Image свойства Visible=False, AutoRedraw=True, AutoSize=True. Теперь бросаем на форму таймер и устанавливаем свойство Interval ну например 50. И еще на понадобиться два PictureBox для вывода нашего изображения. Кстати их тоже сделаем невидимыми Visible=False. Все приготовления завершены, приступаем к кодингу: Первое что мы делаем это узнаем размер картинки которую мы будем показывать:
Теперь добавим процедуру в наш таймер.
Все готово!!! Можете пробывать запускать проект и наблюдать как у вас на форме происходит невообразимой кросаты действо называемое анимацией З.Ы.Статья не претендует на полноту изложения, она просто описывает один из вариантов воспроизведения анимации. З.З.Ы. Надеюсь она кому ни будь поможет. |
||||||||||
|
|||||||||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Voldemar2004 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Вот посмотрите:
Timer.Index = 0, 2-a PictureBox в General
Добавлено @ 21:19 ПРимер взял из "Освой на примерах", Никита Культин автор книги. В качестве фоток хотел использовать свой аватарчик (Осла из Фильма), но сделал Ogg Vorbis Fish. ЧЕрт потерял у вас тут кнопку "присоединить файл" - послал бы mult.bmp c примерчиком. Это сообщение отредактировал(а) Voldemar2004 - 4.4.2005, 21:20 -------------------- i_i (';') (V) ![]() |
||||
|
|||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
Дякою |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Дякою == Спасибо
только наверное правильнее будет дякую, а может и нет. Это сообщение отредактировал(а) korob2001 - 30.6.2005, 08:54 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Voldemar2004, пожалуйста поменьше флейма...
Спасибо, буду знать... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Xeim |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 17.11.2005 Репутация: нет Всего: 0 |
Я бы тоже мультик на ВБ зделал, да лень читать всю эту ерунду. А так вобще хорошо написано. Зачот.
Помню раньше делал кучу хороших мультиков. Но никто не заценил (не доходит). |
|||
|
||||
| NewSWA |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.12.2005 Репутация: нет Всего: нет |
Весь процесс создания можно упростить, для этого в качестве анимации графики используем анимированные *.Gif файлы, а модулей для их проигрывания в нете давольно много. Проблему составляет, как мне кажется, только звук
|
|||
|
||||
| KEKCCCP |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 19.8.2005 Репутация: нет Всего: нет |
Desdichado, "%?%?№ писать тут болтовни столько... !
Это сообщение отредактировал(а) cardinal - 26.12.2005, 17:07 |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Модератор: KEKCCCP, думай в след. раз, что говоришь!
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |