国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

VisualBasic動畫編程技術(shù)

2019-11-18 17:50:35
字體:
供稿:網(wǎng)友

在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對象中顯示圖象。使圖象移動或變化的基本方法有三種,即:

  1. 用Image對象的Move方法移動圖象,其Left和Top屬性指示了Image對象的當(dāng)前左上角位置;
  2. 調(diào)用LoadPicture函數(shù)裝載不同的圖象,并賦給Image對象的Picture屬性,將在對象中顯示不同的圖象,即實現(xiàn)圖象變化;
  3. 修改Image對象的Width和/或Height屬性可以縮放圖象。
----使用Timer控件可以實現(xiàn)定時控制。Timer對象的Interval屬性設(shè)置了定時間隔,即調(diào)用Timer事件過程的時間間隔。在Timer事件過程中處理控制Image對象的移動或變化,便能實現(xiàn)動畫。Timer對象的Interval值決定了動畫的變化或移動速度,其單位是毫秒(1/1000秒)。

----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è)置它們的屬性,未列出的屬性使用缺省值。

.
.
.

----注意,云彩碰到邊界而反向移動,是通過改變DetaX、DetaY的符號來實現(xiàn)的。

四、多幀位移動畫

----多幀位移動畫是最復(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
.
.
.

->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平顶山市| 上饶县| 高密市| 东乌珠穆沁旗| 襄城县| 辽宁省| 潞西市| 越西县| 井研县| 闽清县| 嘉善县| 余姚市| 大洼县| 获嘉县| 土默特右旗| 武山县| 库尔勒市| 门源| 应城市| 曲周县| 平果县| 山西省| 自贡市| 高雄县| 乐陵市| 申扎县| 商河县| 明溪县| 遂昌县| 景德镇市| 婺源县| 六安市| 禹州市| 昔阳县| 普安县| 磴口县| 璧山县| 贺兰县| 南开区| 辽中县| 莎车县|