![](/img/trans.png)
[英]What is the best way to log exceptions in Visual Basic, on an ASP.NET Application?
[英]What's the best way to draw graphics for a video game in Visual Basic .NET?
我知道VB.NET對視頻游戲不利,但是我會在接下來的一段時間內堅持使用它,因為這是我的高中計算機科學課程所使用的。
我知道有很多方法可以在Visual Basic中繪制圖形。 我聽說過使用Me.CreateGraphics
,使用onPaint
事件處理程序以及使用后台緩沖區(盡管我不確定使用這些方法的最佳方法是什么)。 順便說一下,我最感興趣的是創建簡單的2D游戲。 另外,它需要使用默認的VB.NET庫制作,因此我無法安裝XNA或類似的東西。
對於簡單的游戲,GDI +( CreateGraphics
方式)可以。 將一個圖片框添加到您的窗體。 此Picturebox將顯示每個渲染的幀。 但是,您不會直接在其上繪制,而是在另一張圖像或后緩沖上繪制。 基本上,您將創建一個游戲循環。 在這里,您可以處理用戶輸入,執行游戲邏輯並渲染新框架:
Sub GameLoop()
Do
HandeUserInput() 'Handles keys or mouse movement
PerformGameLogic() 'Move NPCs, etc.
RenderNewFrame() 'Redraw the new state of the game
Loop
End Sub
用戶輸入和游戲邏輯由您決定。 渲染將通過創建所需大小的新位圖來完成,然后使用GDI +圖形對象在其上繪制內容。 完成后,您將在圖片框中顯示此新位圖。
Sub RenderNewFrame()
Dim NewFrame as New Bitmap(640, 480) 'Or whatever resolution you want
Using g as Graphics = Graphics.FromImage(NewFrame)
DrawWorld(g)
DrawPlayer(g)
End Using
If Picturebox1.Image IsNot Nothing Then Picturebox1.Image.Dispose()
Picturebox1.Image = NewFrame
End Sub
我處理前一幀,因為位圖不受管理,並且會迅速堆積在內存中。
這是游戲的基本框架,在帶有GDI +的VB.NET中可以很好地工作。 您可能希望在每幀之間添加小的延遲,即1..2毫秒。 這將防止很多處理器負載,同時不會真正影響游戲性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.