Skip to main content

moregeek program

微信小游戏开发实战2:使用表格处理数据-多极客编程

上一节中讲过使用表格来存储和处理游戏中的数据。这一节我们直接上手,学习表格中的数据处理,我们将会实现以下的内容:

  • 创建一个10行10列(10x10)的表格,默认值都设置为0
  • 随机的在表格中插入一行数据1
  • 逐行遍历,找到满足条件的行(即整行的数据都是1)


创建表格

在“数据区”中点击“新建表格”按钮,创建一个叫做“网格”的全局变量。

微信小游戏开发实战2:使用表格处理数据_微信小游戏开发

微信小游戏开发实战2:使用表格处理数据_微信小游戏开发_02

会看到一个表格编辑的窗口,点击“新增行”和“新增列”创建一个10行10列的表格。

微信小游戏开发实战2:使用表格处理数据_游戏开发教程_03

将所有格子中的数据都设置为“0”,最后看起来应该是这样。

微信小游戏开发实战2:使用表格处理数据_游戏开发教程_04

这样一个10x10的所有默认数据为0的表格就创建好了。


随机在表格中插入一行数据

为了方便演示,我在场景中增加了两个按钮,一个叫做“加入一行”,一个叫做“查找匹配”。我们会把插入逻辑和查找逻辑分别放在对应的按钮对象上。

你可以对照着下图添加你的素材。

微信小游戏开发实战2:使用表格处理数据_游戏开发教程_05

在“加入一行”对象上创建两个局部变量:行号和列号。

微信小游戏开发实战2:使用表格处理数据_微信小游戏开发_06

接着,我们直接看代码逻辑。

微信小游戏开发实战2:使用表格处理数据_微信小游戏开发_07

如果一下看不明白,也无需着急。对着下面的分析再多看几遍。

因为我们的表格一共10行,所以这里我们取了1~10之间的随机整数,作为将要设置的行,并且将这个数字保存在了局部变量“行号”中(通常对于后续需要用到的数据,都会用局部变量来存储)。循环开始前将列号设置为1,因为要从第1列开始依次向后设置,直到第10列。假设随机到了第1行后,开始进入循环,首先会将表格中第1行第1列的数字设置为1,接着第1行第2列,直到第1行第10列后,循环结束。这样第1行中所有的10个数字就都从0变为了1。

接下来,我们验证一下,点击预览场景右侧的下拉小箭头,选择“调试场景”。

微信小游戏开发实战2:使用表格处理数据_游戏开发教程_08

调试场景像下面这样,你以后会经常用到。点击“系统全局”可以看到我们创建的全局变量“网格”,鼠标移动网格的数据上,会显示当前网格的数据。

微信小游戏开发实战2:使用表格处理数据_微信小游戏开发_09

接着点击“加入一行”,可以看到我们为它创建的两个局部变量,“行号”和“列号”。

微信小游戏开发实战2:使用表格处理数据_游戏开发教程_10

现在,点击一下场景中的“加入一行”按钮,你会看到“行号”和“列号”的局部变量发生了变化,当前“行号”为9,意味着我们随机到了数字9,即将表格中第9行的所有数据设置成了1。

微信小游戏开发实战2:使用表格处理数据_游戏开发教程_11

看一下系统全局中的网格数据,是否是第9行被设置为了1。

微信小游戏开发实战2:使用表格处理数据_微信小游戏开发_12

第9行的数据确实都被设置为了1,证明了我们逻辑没有问题。你可以多点击几次“加入一行”按钮,多设置几行表格数据,在全局变量中查看。


查找满足条件的行

我们的查找逻辑是这样的:从上往下,依次查找表格中的每一行,如果一行中所有的数据都是1,那么记录一下这一行的行号,直到表格查找结束。

首先,我们创建4个局部变量。

微信小游戏开发实战2:使用表格处理数据_微信小游戏开发_13

“行号”和“列号”用于循环,“都是1”用来表示当前一行的数据是否都是1,如果满足条件的话设置为1,不满足的话设置为0,

新建一个列表局部变量“匹配行”,用于记录当前满足条件的行号,因为表格中可能会有多行满足条件,所以这里我们使用列表来记录所有满足条件的行号。

下面我们来看一下查找匹配的逻辑:

微信小游戏开发实战2:使用表格处理数据_游戏开发教程_14

这里有一个难点就是“双重循环”,如果你遍历的数据只有一行的话,那么只需要一个循环就可以了,但是,当你要遍历10行10列的数据时,就需要用到“双重循环”。一个循环用于行,一个循环用于列。它只是看上去复杂,认真的分析一下其实不难理解。

我们从表格的第一行开始检查,想象一下我们从表格中拿出了第一行数据,然后从这一行数据的第一个一直检查到最后一个,看看是否有数字不为1,只要有一个数字不为1,就证明这一行不符合条件,就没有必要接着往下检查了。检查完一行后,如果它符合条件我们就把这一行的行号记录下来,放到“匹配行”的列表中。接下来再取出第二行,进行同样的操作,直到取完第十行为止。

点击“调试场景”,检查一下逻辑是否有问题,先点击几次“加入一行”按钮,随机的在表格中加入几行数据。

微信小游戏开发实战2:使用表格处理数据_微信小游戏开发_15

接着点击“查找匹配”按钮,选择“查找匹配”,看一下“匹配行”局部变量的数据。

微信小游戏开发实战2:使用表格处理数据_游戏开发教程_16

如图,找到了第7,6,1行是满足条件的。

小提示:因为我们总是在列表中的第1项插入数据,所以最后的结果是[7,6,1],是倒序。真实过程是这样的,检查到第1行满足条件,插入列表,列表变为[1],接着检查到第6行满足条件,插入列表,列表变为[6,1],接着第7行满足条件,插入列表,列表变为[7,6,1]。


总结一下

这一节我们学习了表格的创建,设置,遍历和查找操作。并且学习了使用“调试场景”在游戏运行时查看全局变量和局部变量,来验证逻辑是否正确。


练一下

试着实现在表格中随机加入一列数据的功能,并且在查找时将所有满足条件的行和列都找出来。 


我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我就对啦!欢迎关注公众号【小蚂蚁教你做游戏】,领取全网最全的微信小游戏开发原创教程资料。

微信小游戏开发实战2:使用表格处理数据_微信小游戏开发_17

©著作权归作者所有:来自51CTO博客作者小蚂蚁教你做游戏的原创作品,请联系作者获取转载授权,否则将追究法律责任
微信小游戏开发实战2:使用表格处理数据
https://blog.51cto.com/u_15530520/5211952

微信小游戏开发实战1:让计算机理解你的想法-多极客编程

现在学习编程似乎非常的热门,尤其是针对小孩子。各种培训机构教育机构都会有各种各样的编程课,宣传要尽早的培养孩子的编程思维,因为当前是互联网的时代,将来会编程可能会像每个人都会开车一样的成为一种必须的技能。至于未来编程能力是否会成为每个人都必须具备的能力,我持怀疑态度。但是对于“编程思维”这个概念,我倒是根据自己的一些情况,有一些理解。我认为“编程思维”无非就是一种换位思考,就像我们都知道的,如果你

开发者如何调整设计系统以适用于元宇宙?-多极客编程

元宇宙的概念如火如荼,但毕竟元宇宙是由开发人员实现的代码构建的可视化产物。有没有实用的元宇宙相关的开发和设计规范呢?本文将为您分享业内专家 Wolfson 带领团队在调整设计系统以指导元宇宙设计和开发时积累的经验和教训。设计系统使开发人员和设计人员能够快速开发在所有平台上都能保持一致的产品,并可以将现有的设计标准直接应用于元宇宙。但是许多概念对于 3D 环境来说是独特的,需要重新定义。在开发过程和

游戏开发新手入门教程14:整合到一起,做出小游戏-多极客编程

终于到了真正动手做游戏的时刻,在这一节里,我会带你从头开始将我们的“太空保卫者”按照设计方案制作出来。这一节里的内容会非常的多,一遍消化不了,可以多读几遍。别着急,慢慢来。首先,我们要准备好游戏中需要用到的所有素材。下方是一张素材的清单:​精灵:​​- 太空背景图​​- 游戏的标题,这里直接用文本​​- 开始按钮​​- 战机​​- 敌机​​- 敌机爆炸动画​​- 子弹​​- 游戏结束​​- 用于记

微信小游戏开发实战4:实现图形的拖拽-多极客编程

在“精致1010”游戏中,我们需要将下方的图形拖拽到上方的网格中,像下面这样。如图,当手指点击下方的图形时,下方的图形会进入可拖拽的状态,它应该能够跟随手指在屏幕上移动,当手指松开时,它应该被放置在新的位置上。首先,我们来熟悉一下一个重要的积木块。如图“当精灵被xx时”积木块会处理游戏中所有与精灵的点击有关的事件。点击下拉,可以看到可以接收五种事件。点击:按下再放开,叫做一次点击,也就是说点击操作

微信小游戏开发实战5:重复执行和逻辑循环的区别-多极客编程

将循环分为重复执行和逻辑循环,应该是微信小游戏开发工具中所特有的。因为之前做游戏,无论是使用哪种工具或者哪种编程语言,对于循环来说,都只有一种,不会存在歧义或者误用。但是这里将循环分为了两种,如果误用的话会导致出现一些奇怪的问题。所以需要单独拿出来区分一下,避免掉进这个“坑”。首先来看一下官方文档,对于这两种循环的解释。重复执行重复执行频率跟游戏的刷新频率一致,约16.67ms一次重复执行(n)次

元宇宙的灵动之魂——电子游戏-多极客编程

电子游戏本就是元宇宙的雏形,因此,电子游戏技术中的游戏引擎、3D图像渲染、云游戏等也为元宇宙的内容制作提供了强大的技术支撑。T 01游戏引擎1、游戏开发的利器自从电子游戏在20世纪六七十年代出现以来,就深受人们的喜爱。庞大的市场和持久强劲的消费需求为游戏厂商带来巨额利润。知名游戏《王者荣耀》单在2020年就为腾讯在全球吸金23.5亿美元。每天都有大量的游戏从工作室走向市场。游戏市场的空前繁荣,游戏

微信小游戏开发实战1:让计算机理解你的想法-多极客编程

现在学习编程似乎非常的热门,尤其是针对小孩子。各种培训机构教育机构都会有各种各样的编程课,宣传要尽早的培养孩子的编程思维,因为当前是互联网的时代,将来会编程可能会像每个人都会开车一样的成为一种必须的技能。至于未来编程能力是否会成为每个人都必须具备的能力,我持怀疑态度。但是对于“编程思维”这个概念,我倒是根据自己的一些情况,有一些理解。我认为“编程思维”无非就是一种换位思考,就像我们都知道的,如果你

游戏开发新手入门教程14:整合到一起,做出小游戏-多极客编程

终于到了真正动手做游戏的时刻,在这一节里,我会带你从头开始将我们的“太空保卫者”按照设计方案制作出来。这一节里的内容会非常的多,一遍消化不了,可以多读几遍。别着急,慢慢来。首先,我们要准备好游戏中需要用到的所有素材。下方是一张素材的清单:​精灵:​​- 太空背景图​​- 游戏的标题,这里直接用文本​​- 开始按钮​​- 战机​​- 敌机​​- 敌机爆炸动画​​- 子弹​​- 游戏结束​​- 用于记

游戏开发新手入门教程13:从想法到设计的过程-多极客编程

在接下来的几节里,我会向你展示游戏制作的整个流程,从开始的一个粗略的想法,到游戏设计,再到最终的游戏制作。一个游戏通常开始于一个想法,这个想法可以是千奇百怪的,可以是五花八门的,甚至可以是可笑的。不论如何有一个想法,是一个游戏的开端。当你有了一个想法了以后,如果你希望它最终能够变成一个真正的游戏,那么你就必须要继续往前走,反复的思考,雕琢你的粗糙的想法,将它细化,形成一份具体的可行的游戏设计方案。

微信小游戏开发实战4:实现图形的拖拽-多极客编程

在“精致1010”游戏中,我们需要将下方的图形拖拽到上方的网格中,像下面这样。如图,当手指点击下方的图形时,下方的图形会进入可拖拽的状态,它应该能够跟随手指在屏幕上移动,当手指松开时,它应该被放置在新的位置上。首先,我们来熟悉一下一个重要的积木块。如图“当精灵被xx时”积木块会处理游戏中所有与精灵的点击有关的事件。点击下拉,可以看到可以接收五种事件。点击:按下再放开,叫做一次点击,也就是说点击操作

微信小游戏开发实战5:重复执行和逻辑循环的区别-多极客编程

将循环分为重复执行和逻辑循环,应该是微信小游戏开发工具中所特有的。因为之前做游戏,无论是使用哪种工具或者哪种编程语言,对于循环来说,都只有一种,不会存在歧义或者误用。但是这里将循环分为了两种,如果误用的话会导致出现一些奇怪的问题。所以需要单独拿出来区分一下,避免掉进这个“坑”。首先来看一下官方文档,对于这两种循环的解释。重复执行重复执行频率跟游戏的刷新频率一致,约16.67ms一次重复执行(n)次

微信小游戏开发实战6:把图形放置到网格上-多极客编程

嗨!大家好,我是小蚂蚁。今天我们继续学习做游戏。在第四节中我们实现了图形的拖拽功能,拖拽的图形最终需要被放置在网格的对应位置上。先说一下实现思路:使用拖拽图形上的左下角的位置作为图形位置,与整个网格的位置进行比对。如果图形位置与当前单元格的位置匹配,则根据图形的数据从当前的单元格开始填充,直到填充完整个图形为止。看不懂?没关系。接着往下我会一步一步的进行拆解和分析。计算拖拽图形左下角的位置作为图形