單純用.net的技術(shù)來做非常麻煩,涉及到了大量的GUI繪圖工作,但這個偏偏還是基礎(chǔ)。所以建議用WPF來處理,雖然也比較麻煩,但要比GUI容易理解的多。
創(chuàng)新互聯(lián)建站一直通過網(wǎng)站建設(shè)和網(wǎng)站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實(shí)效"的一站式服務(wù),以成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、移動互聯(lián)產(chǎn)品、網(wǎng)絡(luò)營銷推廣服務(wù)為核心業(yè)務(wù)。10年網(wǎng)站制作的經(jīng)驗,使用新網(wǎng)站建設(shè)技術(shù),全新開發(fā)出的標(biāo)準(zhǔn)網(wǎng)站,不但價格便宜而且實(shí)用、靈活,特別適合中小公司網(wǎng)站制作。網(wǎng)站管理系統(tǒng)簡單易用,維護(hù)方便,您可以完全操作網(wǎng)站資料,是中小公司快速網(wǎng)站建設(shè)的選擇。
而原理實(shí)際上都是一樣的。本質(zhì)上都是圖片的移動。只不過移動的那張圖片有變化。
譬如你要做一個沿直線跑步的小人。在起始的位置畫一個站立的人物圖,然后將圖片移動到下一個位置,并把圖片換成邁出左腿并揮臂的圖;再將圖片移動一下,繪制收左腿邁右腿的圖,一直下去。
說白了就是你需要將人物移動的動作分解,并在合適的位置上繪制出合適的圖,分解的越細(xì),動畫的連貫性就越高。
其實(shí)就是制作動畫,然后再把它用到游戲中
給你提供一個思路,
你既然知道BITBLT,基礎(chǔ)不會太差的,我就簡單明了的說下.
從你的問題看,最簡單的方法,其實(shí)只需要一個picturebox.
然后定義一個4*3的Image數(shù)組img(3,2).橫4縱3.
img(0,0)裝入第一張圖片,
img(1,0)裝入第二張圖片,
img(3,0)不使用.
以此類推,img(3,1)也不使用,
####但是,img(3,2)雖然不裝入圖片,
####其功能卻和你思路中的"沒圖片的picturebox"相同.
我們可以定義兩個變量x
,
y
As
Integer
初始的時候x=3,y=2,應(yīng)該看出來了吧?這兩個變量用來保存空白image的位置,方便你移動圖片.
有了這種結(jié)構(gòu),剩下的工作就很簡單了.
寫一個方法來處理按鍵消息.例如:
如果此時x=1,y=1,用戶按下了"上鍵",那么img(x,y)和Image(x,y-1)交換.然后y=y-1
如果此時x=1,y=1,用戶按下了"左鍵",那么img(x,y)和image(x-1,y)交換.然后x=x-1
其實(shí)就是移動空白位置的方法.但是要注意,img(3,0),img(3,1),img(3,2)這三個特殊位置要做特殊處理.
最后,寫個for循環(huán),把img數(shù)組顯示到picturebox上面就可以了.
很簡單吧?不知道我說得是否清楚?
希望對你有所幫助.
不是語言讓圖片動起來的,而是圖片本身就能動,例如gif格式圖片本身就是動畫。如果你講的是圖片在網(wǎng)頁上移動,而不是圖片本身內(nèi)容的動作,那么不是vb.net的功能必須用java腳本來實(shí)現(xiàn)。
***怎樣讓移動圖像顯示更快一些*** Hide Controls When Setting Properties to Avoid Multiple Repaints Every repaint is expensive. The fewer repaints Visual Basic must perform, the faster your application will appear. One way to reduce the number of repaints is to make controls invisible while you are manipulating them. For example, suppose you want to resize several list boxes in the Resize event for the form: Sub Form_Resize () Dim i As Integer, sHeight As Integer sHeight = ScaleHeight / 4 For i = 0 To 3 lstDisplay(i).Move 0, i * sHeight, _ ScaleWidth, sHeight Next End Sub This creates four separate repaints, one for each list box. You can reduce the number of repaints by placing all the list boxes within a picture box, and hiding the picture box before you move and size the list boxes. Then, when you make the picture box visible again, all of the list boxes are painted in a single pass: 在vb中用move方法移動圖片時,速度有些慢,當(dāng)圖片很大時,這時可以用下面的方法: Sub Form_Resize () Dim i As Integer, sHeight As Integer picContainer.Visible = False picContainer.Move 0, 0, ScaleWidth, ScaleHeight sHeight = ScaleHeight / 4 For i = 0 To 3 lstDisplay(i).Move 0, i * sHeight, _ ScaleWidth, sHeight Next picContainer.Visible = True End Sub Note that this example uses the Move method instead of setting the Top and Left properties. The Move method sets both properties in a single operation, saving additional repaints.
網(wǎng)站欄目:vb.net圖片移動 vb中timer控件
本文鏈接:http://sd-ha.com/article42/dojsjec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、網(wǎng)站營銷、App開發(fā)、、網(wǎng)站收錄、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)