一个平滑的贪吃蛇游戏
VB.NET中的单人游戏

引言
每个人都一定玩过这个游戏。我利用上班空闲时间,花了2天时间制作了这个游戏。这是一个简单的VB.NET游戏,只使用了初级类。运行游戏前不需要任何特殊信息。
目的
在制作这个游戏之前,我看到了很多版本。大多数版本都使用矩形块或圆形来移动,这不是标准方法。所以我使用了DrawLine()
,精确到像素级别1,以获得这种平滑度。
输入 & 输出
不需要特殊的输入和输出,用户可以通过选择级别来更改游戏难度,并且很快就会提供一个新版本,其中包含蛇颜色和宽度选择功能。
输出直接显示在屏幕上,根据KeyPress()
移动。
<pre lang=vbnet>
If Not (MenuItem3.Text = "Resume") Then
Timer1.Interval = int_timer1 : Timer2.Interval = int_timer2 : Timer1.Start()
If (e.KeyCode = Keys.Down) And ((prev = "up") Or (prev = "right") Or (prev = "left") Or (prev = "")) Then keypressed = "down"If (e.KeyCode = Keys.Up) And ((prev = "down") Or (prev = "") Or (prev = "right") Or (prev = "left")) Then keypressed = "up"If (e.KeyCode = Keys.Right) And ((prev = "left") Or (prev = "") Or (prev = "up") Or (prev = "down")) Then keypressed = "right"If (e.KeyCode = Keys.Left) And ((prev = "right") Or (prev = "") Or (prev = "up") Or (prev = "down")) Then keypressed = "left"
End If
</pre>
我使用DrawLine()
函数来绘制蛇。同时,第二条线在一段时间后立即从后面开始。这条线用于从尾部擦除蛇。
<pre lang=vbnet>
Public snake_erase As Pen = New Pen(Color.Black, 2)
Me.CreateGraphics.DrawLine(snake_erase, X(value), Y(value), X(value + 1), Y(value + 1))
value=value+1
</pre>
食物
食物生成是最简单的部分,我使用了System.Random()
来根据窗体宽度和高度生成随机食物粒子,因此可以在任何尺寸下玩此游戏。
<pre lang=vbnet>
foodx = RandomNumber.Next(20, Me.Width - 60)
foody = RandomNumber.Next(20, Me.Height - 60)
Me.CreateGraphics.DrawRectangle(food, foodx, foody, 2, 2)
</pre>
我使用了+-1 & +-2的精度,所以应该没有问题。
增加长度
长度的增加仅仅是通过减小从尾部来的擦除蛇的长度来实现的,我为此使用了变量value
。
约束
主要的限制是X()和Y()的数组大小,目前我将它们设置为500,000(足够玩5-6个小时),但是你可以编写自己的数组擦除函数。
碰撞检测
食物和蛇之间的碰撞检测是通过匹配Snake(x,y)
和Food (x,y)
坐标来完成的。如果两者相等,则蛇的长度增加,并且随机显示新的食物。
结论
制作这个游戏是一次很好的体验。如果您有任何问题,可以通过atul_m_ojha@yahoo.co.in与我联系。
谢谢,