泪流满面啊!终于在WPS里让让小方块动起来了!!

文摘   2024-10-15 12:01   湖北  

相信很多新手听说可以用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=16777215Range("游戏区")(行[1],列[1]).Interior.Color=0
  • Range("游戏区") 表示一个名为 "游戏区" 的区域(可能是Excel中的一个命名区域)。

  • (行[0],列[0]) 和 (行[1],列[1]) 分别表示这个区域中的两个单元格。

  • Interior.Color 是设置单元格背景颜色的属性。

  • 16777215 是白色的颜色代码,0 是黑色的颜色代码。

这段代码的作用是:

  • 将第一个点的单元格背景颜色设置为白色。

  • 将第二个点的单元格背景颜色设置为黑色。


6. 更新坐标

行[0]=行[1];行[1]=行[1]+1if(行[1]>20){行[1]=1}
  • 将第一个点的坐标更新为第二个点的坐标。

  • 将第二个点的坐标向下移动一行(行[1]=行[1]+1)。

  • 如果第二个点的行坐标超过了20(假设游戏区有20行),则将其重置为1,这样就形成了一个循环。

7. 循环结束

由于 while(1) 是无限循环,所以这个过程会一直重复,直到你手动停止程序。

总结

这段代码的原理是:在一个无限循环中,不断改变两个单元格的颜色,并让其中一个单元格的坐标向下移动,形成一个简单的动画效果。每次循环之间有一个短暂的延迟,以控制动画的速度。

课程咨询加微信EXCEL880B  

买课程可进永久答疑群,课程可免费试学点击下方链接即可

郑广学Excel实战教程

郑广学WPS-JSA火箭速成班完整目录



EXCEL880
Excel/WPS办公技巧分享 郑广学VBA/VSTO/JSA教程分享 课程咨询及付费定制表格加EXCEL880B
 最新文章