Програма для анімації музичних творів
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
out
out
in
in
out
in
out
out
in
in
out
out
in
out
in
out
out, out
in, out
out, out
out
outАдр. ідентиф., Адр.хендлу
-
-
Адр. буферу
Тип, ID, Адр. буферу
IID, Size, Name, ID, Адр. буф.
ID,IID,ID,Flg,Адр.буф,Адр.буф
Адреса ідентифікатора
Координати X,Y
Адреса координат X,Y
Ширина, висота
Адреса ширини, висоти
Адреса буферу
Адреса буферу
Адреса змінної
Адреса змінної
Значення початкового стану
Значення-прапорець
Адреса змінної
Тип, Імя, Черга, Адр. ідентиф.
Адреса буферу, Адр.ідентифік.
Ідентифікатор
Тип дії
Ідентифікатор, Адр. ідентифік.
Ідентифікатор, Адр. ідентифік.
Швидкість, Адр. ідентифік.
Швидкість, Адр. ідентифік.
Адр.тексту,Адр.файлу,Адр.ID.
X, Y, Швидкість, Адр.ідентиф.
X, Y, Адр. ідентифік.
Адреса буферу
Адреса буферу
Адреса змінної
Значення-прапорець
Адреса змінної
Адреса буферу
Адреса буферу
Адреса буферу
X, Y
Прапорець
Адреса прапорця
Адреса імені
Адреса імені
Прапорець
Адреса прапорця
Адреса IID
Адреса рядка
Адреса прапорця
Прапорець
Ідентифікатор
Адр. Ідентифікатора
Адреса рядка
Адр. Ідентифікатора
Адреса рядка
Адреса рядка
Адреса рядка
Адреса X, Адреса Y
Адр. рядка, Адр. ідентиф.
Адр. ідентиф., Адр. ідентиф.
Адреса буферу
Адреса прапорця
Кожна таблиця методів містить на початку стандартні спеціалізовані методи QueryInterface, AddRef, Release.
Для виклику довільного методу використовується три команди асемблера:
mov edx, хендл інтерфейсу обєкта
mov edx, [edx]
call [edx+ адреса метода в таблиці], хендл інтерфейсу обєкта, параметри
Для деяких методів (наприклад, Speak) необхідно виділяти системну область памяті. Память з програми користувача для них не підходить. Для цього існує функція SysAllocString, яка резервує фрагмент системної памяті і одразу ж копіює в нього рядок з памяті користувача, який закінчується двома нулями. Після використання цей фрагмент знищується за допомогою функції SysFreeString, параметром якої є адреса цього фрагменту.
Всі керуючі дії для обєктів ActiveX необхідно передавати в юнікодах. Для перетворення рядка в юнікод в програмі використана функція MultiByteToWideChar.
Постановка задачі
Нашою метою є скласти програму для анімації музичних творів на мові асемблер за допомогою обєкта ActiveX - Microsoft Agent. Завантажити його можна з сайту Microsoft (безкоштовно):
Для анімації мною було обрано стандартний персонаж “Чарівник”.
Для того, щоб наш персонаж міг розмовляти треба встановити Microsoft Text-To-Speech
Щоб він міг розмовляти російською необхідно завантажити голосовий драйвер Lernout&Hauspie TTS3000:
Офіційно на сайті Microsoft можна завантажити такі персонажі:
Чарівник:Джин:Папугай:Робот:
Але в мережі існують сотні персонажів, наприклад на сайті
Звуковий файл, який будемо використовувати для анімації помістимо в папку з програмою і назвемо наприклад arash.mp3, в програмі визначимо назву музичного файлу
MUZIKAdb "play arash.mp3",0
та запустимо
call mciSendStringA,offset MUZIKA,0,0,0
Під музику персонаж буде виконувати задану послідовність дій. Список можливих дій персонажу наведено нижче: Acknowledge,Alert,Announce,Blink,Confused,Congratulate,Congratulate_2,Decline,DoMagic1,DoMagic2,DontRecognize,Explain,GestureDown,GestureLeft,GestureRight,GestureUp,GetAttention,GetAttentionContinued,GetAttentionReturn,Greet,Hearing_1,Hearing_2,Hearing_3,Hearing_4,Idle1_1,Idle1_2,Idle1_3,Idle1_4,Idle1_5,Idle1_6,Idle2_1,Idle2_2,Idle2_3,Idle3_1,Idle3_2,LookDown,LookDownBlink,LookDownReturn,LookLeft,LookLeftBlink,LookLeftReturn,LookRight,LookRightBlink,LookRightReturn,LookUp,LookUpBlink,LookUpReturn,LookUpLeft,LookUpLeftBlink,LookUpLeftReturn,LookUpRight,LookUpRightBlink,LookUpRightReturn,MoveDown,MoveLeft,MoveRight,MoveUp,Pleased,Process,Processing,Read,ReadContinued,ReadReturn,Reading,RestPose,Sad,Search,Searching,StartListening,StopListening,Suggest,Surprised,Think,Thinking,Uncertain,Wave,Write,WriteContinued,WriteReturn,Writing,Hide,Show.
Висновок
В даному курсовому проекті було описано специфічний спосіб створення програми для анімації музичного твору. Для анімації було обрано казковий персонаж Microsoft Agent “Чарівник”.
Список літературних джерел
1. Приклади використання функцій (електронна база) ASM_EXAMPLES
2. Методичні вказівки з курсу “Сиcтемне програмування та операційні системи” ЗБІРНИК ЛАБОРАТОРНИХ РОБІТ
3. Довідка по АРІ функціях “Borland C++ v.6.0”
4. Методичні вказівки для виконання курсової роботи Kurs_IIT.doc
5. Пирогов В. Ю. Ассемблер для Windows. М.: Издатель Молгачева С.В., 2002. 552 с.: ил.
6. Зубков С. В. Assembler для DOS, Windows и UNIX. - М: ДМК. Пресс, 2000. - 608 с.: ил.
7. Магда Ю. С. Ассемблер. Разработка и оптимизация Windows-приложений. - БХВ-Петербург, 2003. - 544 с.: ил.
Додаток
Код програми
486
model flat,stdcall
extrn ExitProcess:Proc, MessageBoxA:Proc, CoInitialize:Proc
extrn CoCreateInstance:Proc, MultiByteToWideChar:Proc
extrn SysAllocString:Proc, SysFreeString:Proc, OpenFile:Proc
extrn _wsprintfA:Proc,MessageBoxW:proc
extrn Sleep:Proc,