2014-02-17 45 views
0

我的目標是使用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 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 ...必須有超過複製相同的圖像更簡單的方法屏幕在所需的位置。

目前,我真正想知道的是將複製圖像的代碼行(也許是在迷宮重置時全部清除它們的方法),然後我將解決如何獲取它到位......

+0

你想要在圖像上繪製圖像? –

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

您可以使用循環創建圖片列表。 – davidsbro

回答

0

首先創建的圖像與列表:

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() 

不要忘記處置列表和位圖結束。

valter

相關問題