![](/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.