在Excel中用VBA制作俄罗斯方块游戏

本文介绍了如何利用VBA在Excel中实现俄罗斯方块游戏的制作过程,包括工作表设置、游戏区域定义、方块类型与旋转参数、以及游戏开始按钮的编程逻辑。通过VBA代码实现了游戏的运行和交互功能。
摘要由CSDN通过智能技术生成

在Excel中用VBA制作俄罗斯方块游戏

前几天用VBA写了一个俄罗斯方块游戏。

先工作表设置
工作表该填写参数的位置须要填写参数。
效果是这样的:

除了游戏区域E:N列宽外,其他区域的列宽请忽略
这里没有把列序数和行序数截取过来,就补标几个项:
游戏区域E1:N20涂黑就行。“y-1 exists”在T8单元格,"type"在Y8单元格,"ColorIndex"在AA1单元格,"knext"在AG6单元格,最后一行最后一列的"74010208"在AG36单元格

Z1:Z7为方块的颜色代码。写在单元格或者赋值到字典都行,为了方便写在了单元格。
AC1:AC5为消除的层数。AD1:AD5为消除层数对应的代码。

type对应的Y列:1,2,3,4,5,6,7代表方块的种类参数,就是俄罗斯方块这7种:
在这里插入图片描述
每一种方块又有四个旋转向,所以Z列对应的值1,2,3,4代表旋转参数。
因为每一种俄罗斯方块由四个小方块组成(即四个单元格),那么确定方块的位置的参数,除了原点坐标的两个参数之外,还需要其他三个单元格的坐标,3个坐标就是6个参数,故这里设置AA列到AF列6个坐标参数。
AG列是集方块的1.类型/2.旋转/3.位置 为一体的长参数。集为一体也是方便代码的书写简化判断操作。
T列的y-1 exists 和U列的 y+1 exists 分别为判断用户按键左移和右移的极限值的参数,极限意思就是到了边缘,或者撞到了其他方块,无法再移动而不执行移动。

游戏开始按钮:
我们把Name设为:Start_Button1
Caption设为:StartGame

代码分为三块内容:

【第大一块】
全局声明:

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long
Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long

Dim p
Dim rw
Dim aBuffer(0 To 255) As Byte

【第二大块】
Function函数过程:

Function shape(s, x, y)
'当新出现的方块时
Set uni = Union(Cells(x, y), Cells(x, y).Offset(WorksheetFunction.Substitute(Mid(s, 3, 1), 8, -1), WorksheetFunction.Substitute(Mid(s, 4, 1), 8, -1)), Cells(x, y).Offset(WorksheetFunction.Substitute(Mid(s, 5, 1), 8, -1), WorksheetFunction.Substitute(Mid(s, 6, 1), 8, -1)), Cells(x, y).Offset(WorksheetFunction.Substitute(Mid(s, 7, 1), 8, -1), WorksheetFunction.Substitute(Mid(s, 8, 1), 8, -1)))
uni.Int
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值