在停滞了三周的贪吃蛇终于又回来更新了~
第四部分我们要完成的是蛇身撞到窗体后游戏结束
具体的过程已经在之前球球大作战那篇文章中解释的很清楚了
就是我们需要实时判断这个贪吃蛇的舌头跟窗体边框的相对位置关系,那么这个过程我们可以单独将他携程一个方法进行调用这也是学习计算机的目的——体会计算机思想
首先我们需要一个自定义方法来判断是否撞墙,另外因为vb中的方法是没有返回值的即我们无法用return的返回值来进行下一步操作;所以我们需要认为的设置一个布尔变量来作为标志,利用布尔变量的值来模拟返回值从而推动程序的下一步发展
自定义方法
'检测是否撞到边缘,撞到返回true,否则就是false
Function istrashwall() As Boolean
istrashwall = False
If sno(UBound(sno)).X + W > ScaleWidth _
Or sno(UBound(sno)).X < 0 _
Or sno(UBound(sno)).Y < 0 _
Or sno(UBound(sno)).Y + W > ScaleHeight Then
istrashwall = True
End If
End Function
我们需要事实判断,那我们就在timer空间里实时调用就好了
根据istrashwall 的值来决定是否结束游戏
'判断是否撞到窗体边缘
If istrashwall Then
If MsgBox("游戏结束,是否重新开始", vbYesNo, "提示") = vbYes Then
Call init
Else
End
End If
End If
学废了吗小伙计萌