单纯用.net的技术来做非常麻烦,涉及到了大量的GUI绘图工作,但这个偏偏还是基础。所以建议用WPF来处理,虽然也比较麻烦,但要比GUI容易理解的多。
创新互联建站一直通过网站建设和网站营销帮助企业获得更多客户资源。 以"深度挖掘,量身打造,注重实效"的一站式服务,以成都网站建设、成都网站设计、移动互联产品、网络营销推广服务为核心业务。10年网站制作的经验,使用新网站建设技术,全新开发出的标准网站,不但价格便宜而且实用、灵活,特别适合中小公司网站制作。网站管理系统简单易用,维护方便,您可以完全操作网站资料,是中小公司快速网站建设的选择。
而原理实际上都是一样的。本质上都是图片的移动。只不过移动的那张图片有变化。
譬如你要做一个沿直线跑步的小人。在起始的位置画一个站立的人物图,然后将图片移动到下一个位置,并把图片换成迈出左腿并挥臂的图;再将图片移动一下,绘制收左腿迈右腿的图,一直下去。
说白了就是你需要将人物移动的动作分解,并在合适的位置上绘制出合适的图,分解的越细,动画的连贯性就越高。
其实就是制作动画,然后再把它用到游戏中
给你提供一个思路,
你既然知道BITBLT,基础不会太差的,我就简单明了的说下.
从你的问题看,最简单的方法,其实只需要一个picturebox.
然后定义一个4*3的Image数组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,应该看出来了吧?这两个变量用来保存空白image的位置,方便你移动图片.
有了这种结构,剩下的工作就很简单了.
写一个方法来处理按键消息.例如:
如果此时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
其实就是移动空白位置的方法.但是要注意,img(3,0),img(3,1),img(3,2)这三个特殊位置要做特殊处理.
最后,写个for循环,把img数组显示到picturebox上面就可以了.
很简单吧?不知道我说得是否清楚?
希望对你有所帮助.
不是语言让图片动起来的,而是图片本身就能动,例如gif格式图片本身就是动画。如果你讲的是图片在网页上移动,而不是图片本身内容的动作,那么不是vb.net的功能必须用java脚本来实现。
***怎样让移动图像显示更快一些*** 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方法移动图片时,速度有些慢,当图片很大时,这时可以用下面的方法: 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.