Vb.net 一个图片框以相同形式多次显示
我的目标是使用VB.net在VS中创建一个迷宫,我目前已经成功地制作了一个随机生成器,用于制作迷宫并显示最后制作的墙的位置Vb.net 一个图片框以相同形式多次显示,vb.net,image,Vb.net,Image,我的目标是使用VB.net在VS中创建一个迷宫,我目前已经成功地制作了一个随机生成器,用于制作迷宫并显示最后制作的墙的位置 Horizontalwalls = Randomizer.Next(60, 91) 'Makes 60 - 90 Horizontal Walls VirticalWalls = Randomizer.Next(60, 91) 'Makes 60 -90 Vertical Walls Dim HLoops = 0 'counter for Horiz
Horizontalwalls = Randomizer.Next(60, 91) 'Makes 60 - 90 Horizontal Walls
VirticalWalls = Randomizer.Next(60, 91) 'Makes 60 -90 Vertical Walls
Dim HLoops = 0 'counter for Horizontal walls
Dim VLoops = 0
lbxHorizontal.Items.Clear() 'empties the list box i have which stores the walls location
lbxvertical.Items.Clear()
Do While HLoops < (Horizontalwalls)
HLoops += 1 'adds to the counter
lbxHorizontal.Items.Insert(0, Randomizer.Next(0, 10))
lbxHorizontal.Items.Insert(0, Randomizer.Next(0, 10))
'Attempt at making visable walls
pbxhorizontalwall.Top = (lbxHorizontal.Items.Item(0) * GridSize - 2) 'This and next line puts the wall in desired location
pbxhorizontalwall.Left = (lbxHorizontal.Items.Item(1) * GridSize - 2)
Loop
然而,我所知道的使所有墙壁可见的唯一方法是制作90幅水平的墙壁图片,尽管将它们全部命名,然后是GLaaa。。。必须有一种更简单的方法将同一图像复制到所需位置的屏幕上
目前,我真正想知道的是复制图像的一行代码,也许是一种在迷宫重置时将它们全部清除的方法,然后我将研究如何将其放置到位 首先使用以下内容创建图像列表:
Dim imageList As New List(Of Bitmap)
imageList.Add("image to add") 'do it for all the images you have
然后创建位图:
Dim bitmapWall as Bitmap = New Bitmap(widthOfbitmap, heightofbitmap, Drawing.Imaging.PixelFormat.Format24bppRgb)
将图像列表绘制到bimap:
Dim objGraphics As Graphics = Graphics.FromImage(bitmapWall)
For i = 0 To imageList.Count
objGraphics.DrawImage(imageList(i), x, y, imageList(i).Width, imageList(i).Height)
Next
objGraphics.Dispose()
x、 y是图像绘制位置的坐标,每次迭代时都应更改它们
最后:
Me.BackgroundImage = bitmapWall
Me.Invalidate()
最后别忘了处理列表和位图
瓦尔特你想在表单上绘制图像吗?我已经编辑了你的标题。请看,如果共识是否定的,他们不应该这样做。你可以使用循环创建一个图片列表。你的瓷砖大小都一样吗?如果您可以创建一个与您需要覆盖的区域大小相同的图像,请将您的单个图像绘制到较大的图像,然后将其指定给窗体的背景图像属性(不一定在窗体上),但至少对玩家可见。。。虽然它们都是相同大小,但有60+个是随机生成的。。。如果有一种方法可以把它们画在一个图像上,并且在运行时用作背景,那么它的编码是什么呢?