彻底搞清微信小游戏开发中的循环的使用

简介: 本文主要内容为游戏开发中常用的循环的使用方法。如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。


本文主要内容为游戏开发中常用的循环的使用方法。

如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。



循环是游戏开发中一定会用到的逻辑,不论是你想控制移动,或者进行遍历,亦或者不停的去执行某一段逻辑,都需要使用循环。那么对于循环的使用你彻底了解了吗?今天这篇文章就帮助你彻底的弄懂微信小游戏开发中的循环的用法。


首先我们来看一下微信小游戏制作工具中与循环有关的积木块。



前三个为重复执行,最后一个为逻辑循环。在使用之前,我们先弄清楚重复执行和逻辑循环的区别。


先来看一下官方文档的解释。


重复执行

重复执行频率跟游戏的刷新频率一致,约16.67ms一次

重复执行(n)次

有限次的循环,执行频率跟游戏的刷新频率一致,约16.67ms一次

重复执行直到<条件>

一直重复执行,直到<条件>为

逻辑循环(n)次

有限次的循环,在当前帧全部执行完毕,在逻辑循环中的克隆会立即克隆


看不懂没关系,先接着往下看。


游戏开发中的帧的概念


想要彻底理解这两种循环的区别,首先必须要理解一个概念,叫做“帧”。



“帧”在游戏开发中是一个常用的概念,想象一下小时候看的胶片电影,放映机上要安放一大盘胶片,最终看到的流畅的电影的画面其实是由胶片中的一个一个的图片构成的。因为人眼会有“视觉停留”,所以只要图片切换的足够快,那看上去就是流畅的画面。


你可以把游戏中的一帧类比成胶片中的一个图片,电影中的一帧只需要处理图像和声音,游戏中的一帧除了图像和声音,还需要处理更多的东西,例如输入操作(是否点击了屏幕,手指是否在屏幕上滑动等),计算操作(游戏中的角色位于哪里?他当前正在攻击吗?还是正在跳跃...)等。


当前的游戏通常都是1秒钟运行60帧,1秒钟等于1000毫秒,那么1帧也就相当于16.67(1000/60)毫秒了。


“帧”的概念理解了,我们再看一下这两种循环。


  • 重复执行:1帧循环一次。假设循环60次,那么总计需要1秒钟的时间执行完。
  • 逻辑循环:在1帧之内执行完所有循环。假设循环60次,那么这60次的循环会在一帧之内执行完毕,也就是只需要16.67毫秒就可以执行完。


为了更好的理解两者间的区别,我们在开发工具中制作一个小例子。



如图,在场景中增加了一个红球,一个篮球,和一个“开始移动”按钮。我们要实现如下的逻辑:点击“开始移动”按钮,两个小球同时开始向上移动,不同的是“红球”使用“重复执行”积木块来处理移动逻辑,而“蓝球”使用“逻辑循环”积木块来处理移动逻辑。


红球的移动逻辑。



蓝球的移动逻辑。



按钮上增加点击时发送“移动”通知。然后两个小球收到“移动”通知后会同时向上移动。



预览场景,看一下结果:



使用“重复执行”的红球大概需要将近1.67秒(循环100次/每秒60次)的时间移动到目标位置,而使用“逻辑循环”的篮球几乎是瞬间移动到目标位置。


现在再回到上方看一下官方文档中对于两种循环的解释,现在是不是比较好理解了呢?


从上方的例子中可以看出“重复执行”的循环积木适用于游戏中的物体的运动,例如不停移动的飞机,云彩,除了移动当然也可以用于旋转或者缩放,总之如果是与运动相关的循环,我就应该选用“重复执行”积木。


使用循环进行克隆


接下来我们再来看一下循环在克隆中的使用。通常我们需要在游戏中克隆很多的物体,例如不停来进攻的敌人,不停发射的子弹等等,当需要克隆很多的物体时,我们就需要使用循环了。


现在假设我们需要连续的克隆10个小球,并且让这些小球从下往上依次排列。



如图这里我们仍然是使用了一个红球和一个蓝球,红球使用“重复执行”进行克隆,篮球使用“逻辑循环”进行克隆。


新建两个全局变量,用于计算新克隆的球的位置。



接着看一下红球的逻辑。



蓝球与红球的逻辑一样,唯一的区别就是使用“逻辑循环”积木。



运行一下,看看最终结果。



可以看到点击克隆后,篮球是瞬间克隆了 10 个,而红球是有一个过渡的,结合上面我们所讲的帧的内容,红球是一帧克隆一个的。


在游戏开发中,如果需要在短时间内大量的克隆物体,需要选择正确的循环去进行克隆操作,例如在射击游戏中发射子弹时,子弹应该是有一定的时间间隔的,此时如果你使用了“逻辑循环”,就会在瞬间创建出大量的子弹,很显然这不是我们想要的效果。另外,在循环克隆时,尤其需要注意“逻辑循环”的使用,因为在 1 帧之内克隆大量的物体时,很有可能会导致你的游戏崩溃。


利用“重复执行”积木块的每帧执行一次的特性,可以实现逐个创建物体的效果,看起来非常不错,在精致1010中创建方块时,就是使用了这样的方式。



使用双重循环


在游戏开发中我们也会经常遇到需要使用双重循环的时候,例如我们需要遍历一个 5 行 5 列的表格,或者需要创建一个 5 行 5 列的对象等。所谓的双重循环其实就是同时使用两个循环,只不过这两个循环是嵌套的,即循环中的循环。


下面我们就结合着克隆,使用双重循环来实现创建 5 行 5 列的小球。


首先,创建一个场景,放置一个红色的小球和按钮,当点击按钮后,会创建 5x5 的共计25个小球。



新建两个全局变量“行”和“列”用于计算新克隆出来的小球的水平和竖直的位置。



接着来看一下红色小球的逻辑。



运行一下看看最终的结果。



使用双重循环最重要的地方在于要捋清自己的思路,是想一行一行的创建还是想一列一列的创建,然后根据具体的需求决定哪层循环在外,哪层循环在内。至于三重循环,即循环中的循环中的循环,在游戏开发中用到的比较少,其实道理都一样,只不过又多了一层循环而已。


在循环的中退出


在使用循环时,我们也经常会遇到需要中途退出的情况,比如说在循环执行到达某个条件时,我们就不需要再继续循环了。



我们可以使用这两块积木块来退出当前的循环。


以上方的创建小球为例,比如说当前我们只想要创建三行小球就满足条件了,这时我们要让循环退出,不需要再继续创建剩余的两行了。这时我们就可以通过条件判断,使用退出循环积木块来达到目的。



再次运行一下。



创建 3 行后退出循环,不会再继续创建了。

“退出逻辑循环”积木与“退出循环”积木的用法一样,只不过使用于逻辑循环中。


带条件的循环


最后,我们再来看一下重复执行中的一个非常好用的积木块“重复执行直到….”,这个积木块可以让这个循环一直执行,直到达成某个条件时循环才停止。


一个简单的小例子,我们让正方形不停的旋转,当点击“停”按钮后,停止旋转。



首先创建一个“停下来”的全局变量。



看一下正方形的逻辑。



当点击按钮时,将“停下来”设置为1。



预览一下。



红色正方形一直旋转,点击“停”后,停止旋转。


这个带停止条件的循环可以用于很多的场景,例如敌人一直在巡逻,知道你靠近时停止巡逻,改为追击,雨一直下直到太阳出来后停止等等。


最后总结一下,在这篇文章中我们了解了下面这些关于循环内容:


  • 帧的概念
  • 重复执行与逻辑循环的区别
  • 循环在物体运动中的使用
  • 循环在克隆中的使用
  • 使用双重循环
  • 在循环中途停止循环
  • 使用带条件的循环


这就是游戏开发中常用的循环的使用方式了,你还能想到哪些循环的使用方式呢?欢迎留言讨论。

如果你对游戏开发感兴趣,欢迎关注我,如果你有对游戏开发感兴趣的朋友,也欢迎把这个系列文章推荐给他。

欢迎支持一下我的微信小游戏作品“精致1010”,最新版本已上线,增加更多玩法和内容,欢迎点击体验。

精致1010

能闯关,能对战,能抽卡,能浇花的小游戏。

小程序

有任何的想法或者疑问,欢迎添加我的微信,我会尽可能的为你提供帮助。

相关文章
|
2月前
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。
|
2月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
3月前
|
小程序 JavaScript API
uni-halo + 微信小程序开发实录:我的第一个作品诞生记
这篇文章介绍了使用uni-halo框架进行微信小程序开发的过程,包括选择该框架的原因、开发目标以及项目配置和部署的步骤。
157 0
uni-halo + 微信小程序开发实录:我的第一个作品诞生记
|
9月前
|
自然语言处理 搜索推荐 小程序
微信公众号接口:解锁公众号开发的无限可能
微信公众号接口是微信官方提供的API,支持开发者通过编程与公众号交互,实现自动回复、消息管理、用户管理和数据分析等功能。本文深入探讨接口的定义、类型、优势及应用场景,如智能客服、内容分发、电商闭环等,并介绍开发流程和工具,帮助运营者提升用户体验和效率。未来,随着微信生态的发展,公众号接口将带来更多机遇,如小程序融合、AI应用等。
|
6月前
|
小程序 前端开发 Android开发
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
1349 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
|
5月前
|
监控 数据可视化 数据处理
微信养号脚本,全自动插件,AUTOJS开发版
这是一套自动化微信养号工具,包含主脚本`wechat_auto.js`与配置文件`config.json`。主脚本实现自动浏览朋友圈、随机阅读订阅号文章及搜索指定公众号三大功能,支持自定义滚动次数、阅读时长等参数。代码通过随机化操作间隔模拟真实用户行为,具备完善的错误处理和日志记录功能。配套UI模块提供可视化操作界面,可实时监控任务状态与运行日志,便于调整参数设置。控制器部分扩展了批量数据处理能力,如学生信息的增删改查操作,适用于多场景应用。下载地址:https://www.pan38.com/share.php?code=n6cPZ 提取码:8888(仅供学习参考)。
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
2896 7
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
2491 1
|
9月前
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
5130 38
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
8月前
|
人工智能 自然语言处理 小程序
技术小白如何利用DeepSeek半小时开发微信小程序?
通过通义灵码的“AI程序员”功能,即使没有编程基础也能轻松创建小程序或网页。借助DeepSeek V3和R1满血版模型,用户只需用自然语言描述需求,就能自动生成代码并优化程序。例如,一个文科生仅通过描述需求就成功开发了一款记录日常活动的微信小程序。此外,通义灵码还提供智能问答模式,帮助用户解决开发中的各种问题,极大简化了开发流程,让普通人的开发体验更加顺畅。
2395 11
技术小白如何利用DeepSeek半小时开发微信小程序?

热门文章

最新文章