在VisualBasic中利用Image和Timer控件能很方便地實現(xiàn)動畫。本文將介紹VisualBasic動畫編程的基本原理和實現(xiàn)三種不同類型動畫的編程技術(shù)。
一、基本原理
----動畫是一種運動的模擬,其實現(xiàn)方法是在屏幕上快速地顯示一組相關(guān)的圖象。因此實現(xiàn)動畫的基礎(chǔ)是圖象的顯示和使圖象快速、定時地移動或變化。----在VisualBasic中,用LoadPicture函數(shù)將BMP、ICO和WMF格式的圖象文件裝入內(nèi)存,并將函數(shù)返回值賦予Image對象的Picture屬性,便能在Image對象中顯示圖象。使圖象移動或變化的基本方法有三種,即:
----Timer對象的Enabled屬性決定了Timer事件是否有效。設(shè)置Enabled屬性為True將啟動Timer事件(如啟動動畫);為False則將使Timer事件無效(如停止動畫)。
二、無位移動畫
----無位移動畫是指動畫對象不移動,但圖象不斷變化,其典型例子是翻書。實現(xiàn)無位移動畫的方法是,設(shè)置好Image對象和Timer對象后,在Timer事件過程中調(diào)用調(diào)用LoadPicture函數(shù)裝載不同的圖象,并賦予Image對象的Picture屬性,使對象中顯示不同的圖象,即實現(xiàn)圖象變化。----下面是翻書動畫的例子。程序啟動時,在窗體中顯示一本翻開的書,用鼠標(biāo)左鍵點擊書,則將開始翻書;再用鼠標(biāo)左鍵點擊書,則書將停止翻動。位圖文件book1.bmp~book4.bmp分別表現(xiàn)了翻書時,正在翻的書頁的不同位置,它們存放在當(dāng)前工程所在的目錄中。
----在需顯示動畫的窗體(Form1)中設(shè)置Image對象Image1和Timer對象Timer1,并按下表設(shè)置它們的屬性,未列出的屬性使用缺省值。
.
.
.
三、單幀位移動畫
----單幀位移動畫,是指同一幅圖象的位置不斷變化而形成的動畫,其典型實例時云彩被風(fēng)吹動。編制單幀位移動畫的方法是在Timer事件過程中調(diào)用Image對象的Move方法來移動圖象。----下面是云彩移動的例子。程序啟動時,在窗體中顯示一朵云,用鼠標(biāo)左鍵點擊云,則云彩將開始飄動,如碰到窗體的邊界,云彩將改變移動方向;再用鼠標(biāo)左鍵點擊云,則云將停止移動。位圖文件cloud.bmp存放在當(dāng)前工程所在的目錄中。
----在需顯示動畫的窗體(Form1)中設(shè)置Image對象Image1和Timer對象Timer1,并按下表設(shè)置它們的屬性,未列出的屬性使用缺省值。
.
.
.
四、多幀位移動畫
----多幀位移動畫是最復(fù)雜的動畫,綜合了無位移動畫和單幀位移動畫的特點。自然界的運動大多數(shù)都具有多幀位移的特點,如小鳥的飛翔,在小鳥位置的移動的同時,其翅膀也在扇動。實現(xiàn)多幀位移動畫需要在Timer事件過程中同時處理Image對象的圖象更替和位置移動。----下面是小鳥飛翔的例子。程序啟動時,在窗體中顯示一只小鳥,用鼠標(biāo)左鍵點擊它,則小鳥將開始扇翅飛翔,如碰到窗體的邊界,小鳥將改變飛翔方向;再用鼠標(biāo)左鍵點擊小鳥,則小鳥將停止飛翔。位圖文件bird1.bmp~bird4.bmp分別表現(xiàn)了小鳥飛翔時,其翅膀的不同位置,它們存放在當(dāng)前工程所在的目錄中。
----在需顯示動畫的窗體(Form1)中設(shè)置Image對象Image1和Timer對象Timer1,并按下表設(shè)置它們的屬性,未列出的屬性使用缺省值。
.
.
.
五、縮放動畫
----氣球的膨脹或縮小是縮放動畫的典型例子。在Timer事件過程中修改Image對象的Width和/或Height屬性,便可實現(xiàn)縮放動畫。但如果要表現(xiàn)物體的同心縮放,則還應(yīng)同時還需移動Image對象。----下面是模擬氣球在空中縮放(同心)的例子。程序啟動時,在窗體中顯示一只氣球,用鼠標(biāo)左鍵點擊它,則氣球?qū)㈤_始膨脹,如碰到窗體的邊界,氣球?qū)⒖s小,縮小到原來大小時,又將膨脹;再用鼠標(biāo)左鍵點擊氣球,則氣球?qū)⑼V箍s放。位圖文件Balloon.bmp存放在當(dāng)前工程所在的目錄中。
----在需顯示動畫的窗體(Form1)中設(shè)置Image對象Image1和Timer對象Timer1,并按下表設(shè)置它們的屬性,未列出的屬性使用缺省值。
對象
屬性
設(shè)置值
Image1
Picture
...(工程文件所處路徑)/Balloon.bmp
.
.
.
新聞熱點
疑難解答