要用GreateGrahpics函数,比如要向 Panel1,填充颜色:
成都创新互联公司是网站建设技术企业,为成都企业提供专业的网站设计制作、成都网站制作,网站设计,网站制作,网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制适合企业的网站。10多年品质,值得信赖!
Dim g As Graphic=Panel1.CreateGraphics
Dim b as New Brush(Color.Blue)
g.FillRectangle(b,Panel1)
写的比较粗,意思就是这样的,你可以边看帮助边细细完成
您是做游戏画面?
如果游戏简单的,看能否用Line控件代替画线,这样只要visible=false就擦除了,但如果有重叠问题,就要考虑把其他的线或坦克什么的都用控件代替。注意picturebox是否有autoredraw属性,有的话设置为true。有问题的话,把窗体的autoredraw也true,防止控件会擦除画上去的东西。
但是楼主要明白一个问题,那些绚丽多彩的游戏画面,不管2D还3D,都是一帧画面一帧画面的从头画一次的,每秒至少要画十几帧以上,3D游戏很关注一个fps参数,就是每秒画多少帧的意思,看您的电脑性能每秒能画多少帧画,如果画不出十几帧以上,感觉就卡了。
实际上游戏开发是先做游戏引擎,就是把这些复杂的纯绘图代码封装起来,做成一个工具软件,然后再把游戏里的物品图片放上去,设置动作、剧情就可以了。有兴趣可以百度一下“游戏开发引擎”,有一些通用的游戏引擎可以借用。
如果是从底层开始写代码,也不是用VB这些绘图语句能做的,太慢了,擦掉这条线都够你抓狂的。一般的,简单的画图可以用API的绘图函数,高档的就要用DirectX了。或者装个Visual Studio .net 2008,有个XNA,专门针对游戏编程的,但是我不知这个XNA是否只能支持C#语言。
补充声明一下,本人只是爱好者,不是专业人士,以上的回答是本人在自学过程中积累的一些肤浅了解,除了XNA很久前做过一点代码外,其他的都是理论没有实践。
参考一下下面这段代码:
‘ 首先picturebox1 加载一张图像
FolderBrowserDialog1.Description = "选择图片文件夹导入图片"
FolderBrowserDialog1.ShowDialog()
path = FolderBrowserDialog1.SelectedPath()
If path = "" Then Return
strSrcFile = Dir(path "\*.tif")
PictureBox1.Image = Image.FromFile(path "\" strSrcFile)
’ 然后再在picturebox1中用graphic画图而不清空原图像
' 建立一个画图对象
Dim g As Graphics = Me.PictureBox1.CreateGraphics
‘ 定义画笔
Dim myPen As System.Drawing.Pen = New System.Drawing.Pen(Color.Blue)
’ 画出矩形框并且填充颜色(颜色保持50%的透明度,使得下面原来的图片背景能看得到)
g.DrawRectangle(myPen, New System.Drawing.Rectangle(50, 50, 30, 20))
g.FillRectangle(New SolidBrush(Color.FromArgb(50, Color.YellowGreen)), New System.Drawing.Rectangle(50, 50, 30, 20))
' 最后释放画图对象
g.Dispose()
效果大致如下图所示:
双击button,在代码窗中写入下面这句话:
this.pictureBox1.Image = null
就可以实现你说的功能啦