如何用Vb做出一个小游戏?

如何用Vb做出一个小游戏?,第1张

'定义蛇的运动速度枚举值

Private Enum tpsSpeed

QUICKLY = 0

SLOWLY = 1

End Enum

'定义蛇的运动方向枚举值

Private Enum tpsDirection

D_UP = 38

D_DOWN = 40

D_LEFT = 37

D_RIGHT = 39

End Enum

'定义运动区域4个禁区的枚举值

Private Enum tpsForbiddenZone

FZ_TOP = 30

FZ_BOTTOM = 5330

FZ_LEFT = 30

FZ_RIGHT = 5730

End Enum

'定义蛇头及身体初始化数枚举值

Private Enum tpsSnake

SNAKEONE = 1

SNAKETWO = 2

SNAKETHREE = 3

SNAKEFOUR = 4

End Enum

'定义蛇宽度的常量

Private Const SNAKEWIDTH As Integer = 100

'该过程用于显示游戏信息

Private Sub Form_Load()

MeShow

MelblTitle = "BS贪食蛇 — (版本 " & AppMajor & "" & AppMinor & "" & AppRevision & ")"

MeCaption = MelblTitleCaption

frmSplashShow 1

End Sub

'该过程用于使窗体恢复原始大小

Private Sub Form_Resize()

If MeWindowState <> 1 Then

MeCaption = ""

MeHeight = 6405 '窗体高度为 6405 缇

MeWidth = 8535 '窗体宽度为 8535 缇

MeLeft = (ScreenWidth - Width) \ 2

MeTop = (ScreenHeight - Height) \ 2

End If

End Sub

'该过程用于重新开始开始游戏

Private Sub cmdGameStart_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Beep

msg = MsgBox("您确认要重新开始游戏吗?", 4 + 32, "BS贪食蛇")

If msg = 6 Then Call m_subGameInitialize

End Sub

'该过程用于暂停/运行游戏

Private Sub chkPause_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If MechkPauseCaption = "暂停游戏(&P)" Then

MetmrSnakeMoveEnabled = False

MetmrGameTimeEnabled = False

MepicMoveAreaEnabled = False

MelblPauseLabVisible = True

MechkPauseCaption = "继续游戏(&R)"

Else

MetmrSnakeMoveEnabled = True

MetmrGameTimeEnabled = True

MepicMoveAreaEnabled = True

MelblPauseLabVisible = False

MechkPauseCaption = "暂停游戏(&P)"

End If

End Sub

'该过程用于显示游戏规则

Private Sub cmdGameRules_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Beep

MsgBox " BS贪食蛇:一个规则最简单的趣味游戏,您将用键盘" & Chr(13) & _

"上的4个方向键来控制蛇的运动方向。在运动过程中蛇" & Chr(13) & _

"不能后退,蛇的头部也不能接触到运动区域的边线以外" & Chr(13) & _

"和蛇自己的身体,否则就游戏失败。在吃掉随机出现的" & Chr(13) & _

"果子后,蛇的身体会变长,越长难度越大。祝您好运!!", 0 + 64, "游戏规则"

End Sub

'该过程用于显示游戏开发信息

Private Sub cmdAbout_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Beep

MsgBox "BS贪食蛇" & "(V-" & AppMajor & "" & AppMinor & "版本)" & Chr(13) & Chr(13) & _

"" & Chr(13) & Chr(13) & _

"由PigheadPrince设计制作" & Chr(13) & _

"CopyRight(C)2002,BestSoftTCG", 0, "关于本游戏"

End Sub

'该过程用于退出游戏

Private Sub cmdExit_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Beep

msg = MsgBox("您要退出本游戏吗?", 4 + 32, "BS贪食蛇")

Select Case msg

Case 6

End

Case 7

MechkWindowButton(2)Value = 0

Exit Sub

End Select

End Sub

'该过程用于拖动窗体_(点击图标)

Private Sub imgWindowTop_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

ReleaseCapture

SendMessage Mehwnd, WM_SYSCOMMAND, SC_MOVE, 0

End Sub

'该共用过程用于处理窗体控制按钮组的相关操作_(锁定、最小化、退出)

Private Sub chkWindowButton_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button <> 1 Then Exit Sub

Select Case Index

Case 0 '锁定窗体

If MechkWindowButton(0)Value = 1 Then

MeimgWindowTopBorderStyle = 0

MeimgWindowTopEnabled = False

Else

MeimgWindowTopBorderStyle = 1

MeimgWindowTopEnabled = True

End If

Case 1 '最小化

MeWindowState = 1

MechkWindowButton(1)Value = 0

MeCaption = "BS贪食蛇 — (V-" & AppMajor & "" & AppMinor & "版本)"

Case 2 '退出

Beep

msg = MsgBox("您要退出本游戏吗?", 4 + 32, "BS贪食蛇")

Select Case msg

Case 6

End

Case 7

MechkWindowButton(2)Value = 0

Exit Sub

End Select

End Select

End Sub

'该过程用于设置蛇运动速度的快慢

Private Sub hsbGameSpeed_Change()

MetmrSnakeMoveInterval = MehsbGameSpeedValue

End Sub

'该过程用于通过键盘的方向键改变蛇的运动方向

Private Sub picMoveArea_KeyDown(KeyCode As Integer, Shift As Integer)

Select Case g_intDirection

Case D_UP

If KeyCode = D_DOWN Then Exit Sub

Case D_DOWN

If KeyCode = D_UP Then Exit Sub

Case D_LEFT

If KeyCode = D_RIGHT Then Exit Sub

Case D_RIGHT

If KeyCode = D_LEFT Then Exit Sub

End Select

g_intDirection = KeyCode

End Sub

'该计时循环过程用于计算游戏耗费的秒数并显示

Private Sub tmrGameTime_Timer()

g_lngGameTime = g_lngGameTime + 1

MelblGameTimeCaption = g_lngGameTime & "秒"

End Sub

'该计时循环过程用于控制蛇的行动轨迹

Private Sub tmrSnakeMove_Timer()

Dim lngSnakeX As Long, lngSnakeY As Long, lngSnakeColor As Long

Dim lngPointX As Long, lngPointY As Long, lngPointColor As Long

Randomize

MepicMoveAreaSetFocus

MepicMoveAreaCls

'确认蛇头的运动方向并获取新的位置

Select Case g_intDirection

Case D_UP '向上运动

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_OldX

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_OldY

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_CurY - SNAKEWIDTH

Case D_DOWN '向下运动

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_OldX

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_OldY

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_CurY + SNAKEWIDTH

Case D_LEFT '向左运动

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_OldX

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_CurX - SNAKEWIDTH

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_OldY

Case D_RIGHT '向右运动

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_OldX

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_CurX + SNAKEWIDTH

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_OldY

End Select

'根据新的位置绘制蛇头

lngSnakeX = g_udtSnake(SNAKEONE)Snake_CurX

lngSnakeY = g_udtSnake(SNAKEONE)Snake_CurY

lngSnakeColor = g_udtSnake(SNAKEONE)Snake_Color

MepicMoveAreaPSet (lngSnakeX, lngSnakeY), lngSnakeColor

'移动蛇身体其他部分的位置

For i = 2 To g_intSnakeLength

g_udtSnake(i)Snake_CurX = g_udtSnake(i - 1)Snake_OldX

g_udtSnake(i)Snake_CurY = g_udtSnake(i - 1)Snake_OldY

lngSnakeX = g_udtSnake(i)Snake_CurX

lngSnakeY = g_udtSnake(i)Snake_CurY

lngSnakeColor = g_udtSnake(i)Snake_Color

MepicMoveAreaPSet (lngSnakeX, lngSnakeY), lngSnakeColor

Next i

'更新蛇旧的坐标位置

For j = 1 To g_intSnakeLength

g_udtSnake(j)Snake_OldX = g_udtSnake(j)Snake_CurX

g_udtSnake(j)Snake_OldY = g_udtSnake(j)Snake_CurY

Next j

'判断蛇在移动中是否到了禁区而导致游戏失败

If m_funMoveForbiddenZone(g_udtSnake(SNAKEONE)Snake_CurX, g_udtSnake(SNAKEONE)Snake_CurY) Then

Beep

MsgBox "您的蛇移动到了禁区,游戏失败!", 0 + 16, "BS贪食蛇"

MetmrSnakeMoveEnabled = False

MetmrGameTimeEnabled = False

MepicMoveAreaVisible = False

Exit Sub

End If

'判断蛇在移动中是否碰到了自己的身体而导致游戏失败

If m_funTouchSnakeBody(g_udtSnake(SNAKEONE)Snake_CurX, g_udtSnake(SNAKEONE)Snake_CurY) Then

Beep

MsgBox "您的蛇在移动中碰到了自己的身体,游戏失败!", 0 + 16, "BS贪食蛇"

MetmrSnakeMoveEnabled = False

MetmrGameTimeEnabled = False

MepicMoveAreaVisible = False

Exit Sub

End If

'判断蛇是否吃到了果子

If m_funEatPoint(g_udtSnake(SNAKEONE)Snake_CurX, g_udtSnake(SNAKEONE)Snake_CurY) Then

'累加玩家的得分并刷新得分显示

g_intPlayerScore = g_intPlayerScore + 1

MelblYourScoreCaption = g_intPlayerScore & "分"

Call m_subAddSnake '加长蛇的身体

Call m_subGetPoint '获取下一个果子的位置和颜色

Else

'绘制果子

lngPointX = g_udtPointPoint_X

lngPointY = g_udtPointPoint_Y

lngPointColor = g_udtPointPoint_Color

MepicMoveAreaPSet (lngPointX, lngPointY), lngPointColor

End If

End Sub

'该私有子过程用于初始化游戏

Private Sub m_subGameInitialize()

Erase g_udtSnake '清空蛇的结构数组

g_intPlayerScore = 0 '清空玩家的得分

g_lngGameTime = 0 '清空游戏耗费的秒数

g_intDirection = D_DOWN '设定蛇的初始运动方向为下

g_intSnakeLength = 4 '设定蛇的初始长度

ReDim g_udtSnake(1 To g_intSnakeLength) '重新定义蛇的长度

'定义蛇头部的数据

With g_udtSnake(SNAKEONE)

Snake_OldX = 530

Snake_OldY = 530

Snake_Color = vbBlack

End With

'定义蛇身第2节的数据

With g_udtSnake(SNAKETWO)

Snake_OldX = 530

Snake_OldY = 430

Snake_Color = vbGreen

End With

'定义蛇身第3节的数据

With g_udtSnake(SNAKETHREE)

Snake_OldX = 530

Snake_OldY = 330

Snake_Color = vbYellow

End With

'定义蛇身第4节的数据

With g_udtSnake(SNAKEFOUR)

Snake_OldX = 530

Snake_OldY = 230

Snake_Color = vbRed

End With

MepicMoveAreaVisible = True

MelblYourScoreCaption = g_intPlayerScore & "分"

MelblGameTimeCaption = g_lngGameTime & "秒"

MetmrSnakeMoveInterval = MehsbGameSpeedValue

MetmrSnakeMoveEnabled = True

MetmrGameTimeEnabled = True

Call m_subGetPoint '获取第一个果子的位置和颜色

End Sub

'该私有子过程用于返回获取的果子的位置和颜色信息

Private Sub m_subGetPoint()

Dim lngRedValue As Long, lngGreenValue As Long, lngBlueValue As Long

Dim lngPointX As Long, lngPointY As Long, lngPointColor As Long

'随机获取果子的颜色

lngRedValue = Int((255 - 0 + 1) Rnd + 0)

lngGreenValue = Int((255 - 0 + 1) Rnd + 0)

lngBlueValue = Int((255 - 0 + 1) Rnd + 0)

lngPointColor = RGB(lngRedValue, lngGreenValue, lngBlueValue)

'随机获取果子的位置

lngPointX = Int((FZ_LEFT - FZ_RIGHT + 1) Rnd + FZ_RIGHT)

lngPointY = Int((FZ_TOP - FZ_BOTTOM + 1) Rnd + FZ_BOTTOM)

MePSet (lngPointX, lngPointY), lngPointColor

'设置函数返回值

With g_udtPoint

Point_X = lngPointX

Point_Y = lngPointY

Point_Color = lngPointColor

End With

End Sub

'定义蛇的运动速度枚举值

Private Enum tpsSpeed

QUICKLY = 0

SLOWLY = 1

End Enum

'定义蛇的运动方向枚举值

Private Enum tpsDirection

D_UP = 38

D_DOWN = 40

D_LEFT = 37

D_RIGHT = 39

End Enum

'定义运动区域4个禁区的枚举值

Private Enum tpsForbiddenZone

FZ_TOP = 30

FZ_BOTTOM = 5330

FZ_LEFT = 30

FZ_RIGHT = 5730

End Enum

'定义蛇头及身体初始化数枚举值

Private Enum tpsSnake

SNAKEONE = 1

SNAKETWO = 2

SNAKETHREE = 3

SNAKEFOUR = 4

End Enum

'定义蛇宽度的常量

Private Const SNAKEWIDTH As Integer = 100

'该过程用于显示游戏信息

Private Sub Form_Load()

MeShow

MelblTitle = "BS贪食蛇 — (版本 " & AppMajor & "" & AppMinor & "" & AppRevision & ")"

MeCaption = MelblTitleCaption

frmSplashShow 1

End Sub

'该过程用于使窗体恢复原始大小

Private Sub Form_Resize()

If MeWindowState > 1 Then

MeCaption = ""

MeHeight = 6405 '窗体高度为 6405 缇

MeWidth = 8535 '窗体宽度为 8535 缇

MeLeft = (ScreenWidth - Width) \ 2

MeTop = (ScreenHeight - Height) \ 2

End If

End Sub

'该过程用于重新开始开始游戏

Private Sub cmdGameStart_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Beep

msg = MsgBox("您确认要重新开始游戏吗?", 4 + 32, "BS贪食蛇")

If msg = 6 Then Call m_subGameInitialize

End Sub

'该过程用于暂停/运行游戏

Private Sub chkPause_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If MechkPauseCaption = "暂停游戏(&P)" Then

MetmrSnakeMoveEnabled = False

MetmrGameTimeEnabled = False

MepicMoveAreaEnabled = False

MelblPauseLabVisible = True

MechkPauseCaption = "继续游戏(&R)"

Else

MetmrSnakeMoveEnabled = True

MetmrGameTimeEnabled = True

MepicMoveAreaEnabled = True

MelblPauseLabVisible = False

MechkPauseCaption = "暂停游戏(&P)"

End If

End Sub

'该过程用于显示游戏规则

Private Sub cmdGameRules_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Beep

MsgBox " BS贪食蛇:一个规则最简单的趣味游戏,您将用键盘" & Chr(13) & _

"上的4个方向键来控制蛇的运动方向。在运动过程中蛇" & Chr(13) & _

"不能后退,蛇的头部也不能接触到运动区域的边线以外" & Chr(13) & _

"和蛇自己的身体,否则就游戏失败。在吃掉随机出现的" & Chr(13) & _

"果子后,蛇的身体会变长,越长难度越大。祝您好运!!", 0 + 64, "游戏规则"

End Sub

'该过程用于显示游戏开发信息

Private Sub cmdAbout_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Beep

MsgBox "BS贪食蛇" & "(V-" & AppMajor & "" & AppMinor & "版本)" & Chr(13) & Chr(13) & _

"" & Chr(13) & Chr(13) & _

"由PigheadPrince设计制作" & Chr(13) & _

"CopyRight(C)2002,BestSoftTCG", 0, "关于本游戏"

End Sub

'该过程用于退出游戏

Private Sub cmdExit_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Beep

msg = MsgBox("您要退出本游戏吗?", 4 + 32, "BS贪食蛇")

Select Case msg

Case 6

End

Case 7

MechkWindowButton(2)Value = 0

Exit Sub

End Select

End Sub

'该过程用于拖动窗体_(点击图标)

Private Sub imgWindowTop_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

ReleaseCapture

SendMessage Mehwnd, WM_SYSCOMMAND, SC_MOVE, 0

End Sub

'该共用过程用于处理窗体控制按钮组的相关操作_(锁定、最小化、退出)

Private Sub chkWindowButton_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button > 1 Then Exit Sub

Select Case Index

Case 0 '锁定窗体

If MechkWindowButton(0)Value = 1 Then

MeimgWindowTopBorderStyle = 0

MeimgWindowTopEnabled = False

Else

MeimgWindowTopBorderStyle = 1

MeimgWindowTopEnabled = True

End If

Case 1 '最小化

MeWindowState = 1

MechkWindowButton(1)Value = 0

MeCaption = "BS贪食蛇 — (V-" & AppMajor & "" & AppMinor & "版本)"

Case 2 '退出

Beep

msg = MsgBox("您要退出本游戏吗?", 4 + 32, "BS贪食蛇")

Select Case msg

Case 6

End

Case 7

MechkWindowButton(2)Value = 0

Exit Sub

End Select

End Select

End Sub

'该过程用于设置蛇运动速度的快慢

Private Sub hsbGameSpeed_Change()

MetmrSnakeMoveInterval = MehsbGameSpeedValue

End Sub

'该过程用于通过键盘的方向键改变蛇的运动方向

Private Sub picMoveArea_KeyDown(KeyCode As Integer, Shift As Integer)

Select Case g_intDirection

Case D_UP

If KeyCode = D_DOWN Then Exit Sub

Case D_DOWN

If KeyCode = D_UP Then Exit Sub

Case D_LEFT

If KeyCode = D_RIGHT Then Exit Sub

Case D_RIGHT

If KeyCode = D_LEFT Then Exit Sub

End Select

g_intDirection = KeyCode

End Sub

'该计时循环过程用于计算游戏耗费的秒数并显示

Private Sub tmrGameTime_Timer()

g_lngGameTime = g_lngGameTime + 1

MelblGameTimeCaption = g_lngGameTime & "秒"

End Sub

'该计时循环过程用于控制蛇的行动轨迹

Private Sub tmrSnakeMove_Timer()

Dim lngSnakeX As Long, lngSnakeY As Long, lngSnakeColor As Long

Dim lngPointX As Long, lngPointY As Long, lngPointColor As Long

Randomize

MepicMoveAreaSetFocus

MepicMoveAreaCls

'确认蛇头的运动方向并获取新的位置

Select Case g_intDirection

Case D_UP '向上运动

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_OldX

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_OldY

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_CurY - SNAKEWIDTH

Case D_DOWN '向下运动

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_OldX

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_OldY

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_CurY + SNAKEWIDTH

Case D_LEFT '向左运动

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_OldX

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_CurX - SNAKEWIDTH

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_OldY

Case D_RIGHT '向右运动

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_OldX

g_udtSnake(SNAKEONE)Snake_CurX = g_udtSnake(SNAKEONE)Snake_CurX + SNAKEWIDTH

g_udtSnake(SNAKEONE)Snake_CurY = g_udtSnake(SNAKEONE)Snake_OldY

End Select

'根据新的位置绘制蛇头

lngSnakeX = g_udtSnake(SNAKEONE)Snake_CurX

lngSnakeY = g_udtSnake(SNAKEONE)Snake_CurY

lngSnakeColor = g_udtSnake(SNAKEONE)Snake_Color

MepicMoveAreaPSet (lngSnakeX, lngSnakeY), lngSnakeColor

'移动蛇身体其他部分的位置

For i = 2 To g_intSnakeLength

g_udtSnake(i)Snake_CurX = g_udtSnake(i - 1)Snake_OldX

g_udtSnake(i)Snake_CurY = g_udtSnake(i - 1)Snake_OldY

lngSnakeX = g_udtSnake(i)Snake_CurX

lngSnakeY = g_udtSnake(i)Snake_CurY

lngSnakeColor = g_udtSnake(i)Snake_Color

MepicMoveAreaPSet (lngSnakeX, lngSnakeY), lngSnakeColor

Next i

'更新蛇旧的坐标位置

For j = 1 To g_intSnakeLength

g_udtSnake(j)Snake_OldX = g_udtSnake(j)Snake_CurX

g_udtSnake(j)Snake_OldY = g_udtSnake(j)Snake_CurY

Next j

'判断蛇在移动中是否到了禁区而导致游戏失败

If m_funMoveForbiddenZone(g_udtSnake(SNAKEONE)Snake_CurX, g_udtSnake(SNAKEONE)Snake_CurY) Then

Beep

MsgBox "您的蛇移动到了禁区,游戏失败!", 0 + 16, "BS贪食蛇"

MetmrSnakeMoveEnabled = False

MetmrGameTimeEnabled = False

MepicMoveAreaVisible = False

Exit Sub

End If

'判断蛇在移动中是否碰到了自己的身体而导致游戏失败

If m_funTouchSnakeBody(g_udtSnake(SNAKEONE)Snake_CurX, g_udtSnake(SNAKEONE)Snake_CurY) Then

Beep

MsgBox "您的蛇在移动中碰到了自己的身体,游戏失败!", 0 + 16, "BS贪食蛇"

MetmrSnakeMoveEnabled = False

MetmrGameTimeEnabled = False

MepicMoveAreaVisible = False

Exit Sub

End If

'判断蛇是否吃到了果子

If m_funEatPoint(g_udtSnake(SNAKEONE)Snake_CurX, g_udtSnake(SNAKEONE)Snake_CurY) Then

'累加玩家的得分并刷新得分显示

g_intPlayerScore = g_intPlayerScore + 1

MelblYourScoreCaption = g_intPlayerScore & "分"

Call m_subAddSnake '加长蛇的身体

Call m_subGetPoint '获取下一个果子的位置和颜色

Else

'绘制果子

lngPointX = g_udtPointPoint_X

lngPointY = g_udtPointPoint_Y

lngPointColor = g_udtPointPoint_Color

MepicMoveAreaPSet (lngPointX, lngPointY), lngPointColor

End If

End Sub

'该私有子过程用于初始化游戏

Private Sub m_subGameInitialize()

Erase g_udtSnake '清空蛇的结构数组

g_intPlayerScore = 0 '清空玩家的得分

g_lngGameTime = 0 '清空游戏耗费的秒数

g_intDirection = D_DOWN '设定蛇的初始运动方向为下

g_intSnakeLength = 4 '设定蛇的初始长度

ReDim g_udtSnake(1 To g_intSnakeLength) '重新定义蛇的长度

'定义蛇头部的数据

With g_udtSnake(SNAKEONE)

Snake_OldX = 530

Snake_OldY = 530

Snake_Color = vbBlack

End With

'定义蛇身第2节的数据

With g_udtSnake(SNAKETWO)

Snake_OldX = 530

Snake_OldY = 430

Snake_Color = vbGreen

End With

'定义蛇身第3节的数据

With g_udtSnake(SNAKETHREE)

Snake_OldX = 530

Snake_OldY = 330

Snake_Color = vbYellow

End With

'定义蛇身第4节的数据

With g_udtSnake(SNAKEFOUR)

Snake_OldX = 530

Snake_OldY = 230

Snake_Color = vbRed

End With

MepicMoveAreaVisible = True

MelblYourScoreCaption = g_intPlayerScore & "分"

MelblGameTimeCaption = g_lngGameTime & "秒"

MetmrSnakeMoveInterval = MehsbGameSpeedValue

MetmrSnakeMoveEnabled = True

MetmrGameTimeEnabled = True

Call m_subGetPoint '获取第一个果子的位置和颜色

End Sub

'该私有子过程用于返回获取的果子的位置和颜色信息

Private Sub m_subGetPoint()

Dim lngRedValue As Long, lngGreenValue As Long, lngBlueValue As Long

Dim lngPointX As Long, lngPointY As Long, lngPointColor As Long

'随机获取果子的颜色

lngRedValue = Int((255 - 0 + 1) Rnd + 0)

lngGreenValue = Int((255 - 0 + 1) Rnd + 0)

lngBlueValue = Int((255 - 0 + 1) Rnd + 0)

lngPointColor = RGB(lngRedValue, lngGreenValue, lngBlueValue)

'随机获取果子的位置

lngPointX = Int((FZ_LEFT - FZ_RIGHT + 1) Rnd + FZ_RIGHT)

lngPointY = Int((FZ_TOP - FZ_BOTTOM + 1) Rnd + FZ_BOTTOM)

MePSet (lngPointX, lngPointY), lngPointColor

'设置函数返回值

With g_udtPoint

Point_X = lngPointX

Point_Y = lngPointY

Point_Color = lngPointColor

End With

End Sub

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/2118782.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-11-11
下一篇2023-11-11

随机推荐

  • 有没有人听说过艾纳菲这个牌子的护肤品呢?套装的价格方面是多少钱呢?效果好么?对比起兰蔻产品那个好用

    你能买到艾纳菲品牌化妆品的地方,那里的服务人员就会告诉你药监局备案码告诉你怎么查,正规厂家产品至于价格方面,每个区域都不同对比兰蔻,没有可比性,兰蔻基础保养艾纳菲专业线,更有针对性,美白效果很好安全。艾纳菲护肤品是正规厂家的产品,定位比较高

    2024-04-15
    56900
  • 美白精华液哪个牌子好

    1、sk2小银瓶2sk面部淡斑精华露富含光蕴海藻精粹能够使肌肤变得匀净透白,能够淡化肌肤可见的斑点,使肌肤变得亮泽净白光采。是护肤品祛斑排行榜10强之一,这款产品是一款明星护肤产品,价格有点小贵但是效果还是不错的。2、资生堂新透白美肌集光祛

    2024-04-15
    57000
  • 国产隔离霜什么牌子好

    问题一:什么牌子的隔离霜好?不要用化学成分的,最好用专门针对敏感皮肤的药妆,薇姿、理肤泉、雅漾这3个牌子的隔离霜都不错,在各大药房里都有得卖,国产的佰草集也不错,可以试试!问题二:国产隔离霜什么牌子好梵洁诗问题三:大

    2024-04-15
    45000
  • 妮维雅身体乳能美白么,妮维雅美白身体乳真的能美白吗

    俗话说“一白遮三丑”,这句话的意思就是白皙的皮肤可以遮盖人脸部上的很多缺点,这也会许多女孩子渴望美白肌肤的原因。改善肤色的办法有很多,大部分女生会选择涂抹具有美白功效的的护肤产品。现如今市面上的美白护肤产品越来越多,其中妮维雅的美白身体乳就

    2024-04-15
    49300
  • 素瑟抗初老套盒补水效果怎样

    素瑟抗初老套盒的补水效果很不错。该套盒中加入了大量水解珍珠、水母提取物、玫瑰花油以及熊果苷等成分,能够从内而外改善肌肤问题,淡斑美白肌肤,抗衰紧致肌肤,同时也能补充皮肤所需成分。使用后,可以一天下来都保持皮肤水亮光滑,形成抗衰保护层,改善肌

    2024-04-15
    41300
  • 冻干粉是什么?冻干粉有效吗?

    颜值,自古是门生意,古有“花钿、唇脂、傅粉、额黄、眉黛、胭脂”,今有“水、乳、霜、精华、口红、眼影、面膜、粉底、唇膏、香水……”,更有“玻尿酸、肉毒素、冻干粉……”这一波医美的风刮到了“冻干粉”,“皮肤的软黄金”、“皮肤修复专家”,上至明星

    2024-04-15
    40900
  • 妮维雅晶纯皙白系列和玫瑰纯露那个美白会好些

    做好防晒和基础护理很重要,并不是一瓶美白产品就能解决问题,定期去角质也很重要,有条件在基础护理里面加一款温和的美白精华,平时多补充vc,量要足够,不要吃感光食物萝卜芹菜或者香菜。推荐你收集了很多实用美白美容方法,很多热卖好评的商品和店铺,美

    2024-04-15
    50600

发表评论

登录后才能评论
保存