Програма для анімації музичних творів

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

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,