相信很多新手听说可以用wps-jsa做俄罗斯方块的时候内心都很震惊
不过这确实是真的,而且不光是wps-jsa 用ExcelVBA也一样 ,怀疑的同学可以去B站搜 郑广学Excel VBA俄罗斯方块,你可以看到3小时一镜到底的完整开发过程
当然对完全零基础的同学来说,确实很难,不过我今天要给大家演示的是游戏的第一步,实现一个小方块的循环下落 , 非常简单,相信你一定可以学会
首先 打开wps 恩本次使用wps不是Excel 因为jsa在excel里没有, 这里的方块下落动画用jsa代码实现
Setp1 : 画一个20*10的格子 随便哪里都行
Setp2 : 选中格子 自定义名称为 游戏区
Setp3 : 工具-开发工具-查看代码 进入jsa代码区
Setp4 : 粘贴以下代码
function 开始游戏(){
var 行=[1,1]
var 列=[1,1];
while(1){
for(var i=1;i<10000;i++){DoEvents()}
Range("游戏区")(行[0],列[0]).Interior.Color=16777215
Range("游戏区")(行[1],列[1]).Interior.Color=0
行[0]=行[1];行[1]=行[1]+1
if(行[1]>20){行[1]=1}
}
}
Setp5 : 点击运行按钮 你就成功的看到方块在循环下落啦!!
下面原理解析:
这段代码是一个简单的游戏循环,主要用于在Excel中模拟一个简单的动画效果。下面我用通俗易懂的语言来解释一下它的原理:
1. 函数定义
function 开始游戏(){
这里定义了一个名为 开始游戏 的函数。当你调用这个函数时,它会执行函数体内的代码。
2. 初始化变量
var 行=[1,1]
var 列=[1,1];
这里定义了两个数组 行 和 列,每个数组都有两个元素,初始值都是 1。这两个数组分别表示两个点的行和列坐标。数组的第一个元素代表要变白色的单元格坐标 ,第2个元素是要涂黑的坐标
3. 无限循环
while(1){
这是一个无限循环,while(1) 表示这个循环会一直运行,直到程序被手动停止。这样才能实现方块不停下落的动画效果
4. 延迟
for(var i=1;i<10000;i++){DoEvents()}
这个 for 循环的作用是让程序暂停一小段时间。DoEvents() 是一个函数,它允许操作系统处理其他事件(比如用户输入),从而模拟出一种“等待”的效果。循环次数 10000 是一个很大的数字,所以这段代码会让程序暂停一段时间。这里一万大概相当于0.5秒
5. 改变单元格颜色
Range("游戏区")(行[0],列[0]).Interior.Color=16777215
Range("游戏区")(行[1],列[1]).Interior.Color=0
Range("游戏区") 表示一个名为 "游戏区" 的区域(可能是Excel中的一个命名区域)。
(行[0],列[0]) 和 (行[1],列[1]) 分别表示这个区域中的两个单元格。
Interior.Color 是设置单元格背景颜色的属性。
16777215 是白色的颜色代码,0 是黑色的颜色代码。
这段代码的作用是:
将第一个点的单元格背景颜色设置为白色。
将第二个点的单元格背景颜色设置为黑色。
6. 更新坐标
行[0]=行[1];行[1]=行[1]+1
if(行[1]>20){行[1]=1}
将第一个点的坐标更新为第二个点的坐标。
将第二个点的坐标向下移动一行(行[1]=行[1]+1)。
如果第二个点的行坐标超过了20(假设游戏区有20行),则将其重置为1,这样就形成了一个循环。
7. 循环结束
由于 while(1) 是无限循环,所以这个过程会一直重复,直到你手动停止程序。
总结
这段代码的原理是:在一个无限循环中,不断改变两个单元格的颜色,并让其中一个单元格的坐标向下移动,形成一个简单的动画效果。每次循环之间有一个短暂的延迟,以控制动画的速度。
课程咨询加微信EXCEL880B
买课程可进永久答疑群,课程可免费试学点击下方链接即可
郑广学WPS-JSA火箭速成班完整目录