微信小程序变脸游戏

发布时间:2026/10/30 2:35:55

微信小程序变脸游戏 前言本次课程案例是利用小程序加速度传感器wx.onAccelerometerChange制作变脸小游戏。功能包含点击图片随机切换脸谱、摇晃手机自动变脸同时完成作业扩展统计并展示累计变脸次数。开发过程遇到了 Skyline 渲染器navigation-bar导航栏组件报错这里记录完整代码与踩坑细节。✅ 功能清单点击脸谱图片随机更换脸谱摇晃手机触发加速传感器自动变脸并弹出提示实时展示累计变脸总次数点击、摇晃变脸都计入页面离开时关闭传感器监听节约性能项目目录完整源码1. app.json改为webview渲染器避开skyline导航栏报错{ pages: [ pages/index/index ], window: { navigationBarTextStyle: black, navigationStyle: custom }, style: v2, renderer: webview, sitemapLocation: sitemap.json, lazyCodeLoading: requiredComponents }2. app.wxss全局公共样式/**app.wxss**/ .box { margin: 20rpx; padding: 20rpx; border: 2rpx solid purple; } .title { font-size: 40rpx; font-weight: bolder; text-align: center; margin-bottom: 30rpx; color: rebeccapurple; }3. pages/index/index.wxml!--index.wxml-- scroll-view classscrollarea scroll-y typelist view classbox view classtitlewx.onAccelerometerChange示例/view image src{{faces[index]}} modewidthFix bind:tapchangeFace/image !-- 作业扩展累计变脸次数 -- view classcount-text累计变脸总次数{{totalCount}}/view /view /scroll-view4. pages/index/index.wxss/**index.wxss**/ page { height: 100vh; display: flex; flex-direction: column; } .scrollarea { flex: 1; overflow-y: hidden; } image { margin: 20rpx; } .count-text { font-size:40rpx; text-align:center; color:rebeccapurple; margin-top:20rpx; }5. pages/index/index.js核心逻辑// index.js Page({ data: { index: 0, totalCount: 0, faces: [ /images/01.png, /images/02.png, /images/03.png, /images/04.png, /images/05.png, /images/06.png, /images/07.png, /images/08.png, /images/09.png, /images/10.png, /images/11.png, /images/12.png, /images/13.png, /images/14.png ] }, // 生成随机索引 createRandomIndex(n) { return Math.floor(Math.random() * n) }, // 变脸函数点击、摇晃共用 changeFace() { this.setData({ index: this.createRandomIndex(this.data.faces.length), totalCount: this.data.totalCount 1 }) }, onShow() { // 监听加速度传感器 wx.onAccelerometerChange((res) { // 三轴任意方向加速度大于0.5判定为摇晃 if (res.x 0.5 || res.y 0.5 || res.z 0.5) { this.changeFace() wx.showToast({ title: 摇一摇成功, icon: success, duration: 5000 }) } }) }, // 页面隐藏关闭传感器监听防止后台持续触发 onHide(){ wx.offAccelerometerChange() } })6. pages/index/index.json{ usingComponents: {} }知识点讲解加速度传感器wx.onAccelerometerChange持续监听手机三轴加速度x、y、z数值正负代表倾斜方向。当晃动幅度超过阈值就触发变脸逻辑。取消监听wx.offAccelerometerChange()传感器监听会持续占用硬件资源必须在onHide生命周期取消监听否则离开页面后还会继续触发变脸。随机数生成Math.floor(Math.random() * n)生成0 ~ n-1的整数用来随机选取脸谱数组下标。作业扩展次数统计 在data定义totalCount每次执行变脸函数时自增视图里渲染该变量实现计数。摇晃一次连续多次变脸加速度传感器回调触发频率很高这是原生接口特性如果想要防抖可以增加时间戳判断限制短时间内只响应一次摇晃。小结这个案例学习了小程序传感器的调用理解了传感器监听的开启与销毁。同时结合点击事件、随机逻辑、数据绑定完成小游戏开发适合小程序传感器入门练习。
延伸阅读

更多相关文章

2026/10/30 2:30:55

slub trace

trace() 是 SLUB 调试中跟踪对象分配/释放事件的函数,对应 SLAB_TRACE 调试标志。它在对象每次被分配或释放时打印一条跟踪日志,用于观察对象的生命周期。一、函数签名static void trace(struct kmem_cache *s, struct slab *slab, void *object,int all…

2026/10/30 3:41:02

USB蓝牙适配器音频断续的根因与系统级优化方案

1. 问题本质与真实场景还原USB蓝牙适配器播放音频不连续——这个标题背后藏着的不是一句简单的“卡顿”,而是一类在日常办公、居家学习、远程会议甚至车载娱乐中高频出现、却长期被误判为“设备质量差”或“系统不行”的典型链路故障。我接触过大量实际案例&#xf…

2026/10/30 3:41:02

台达DOPSoft 4.00.03安装与HMI工程实战指南

简介:本资源为台达全系列触摸屏专用编程软件DOPSoft安装包及配套文档,面向工业自动化工程师、PLC与HMI初学者及产线设备维护人员,解决台达人机界面程序开发、调试与兼容性适配等核心问题。压缩包共3个文件:主程序安装文件&#xf…

2026/10/30 3:41:02

Python实战:从城市边界数据推导农村边界的方法与避坑指南

城市边界和农村边界这两个概念,在地理信息处理里经常被混着用,但真正落到数据层面,它们完全是两套逻辑。我最近在做一个区域统计分析的小项目,需要把某片城区的周边农村范围圈出来,手头正好有一份全球城市边界数据集&a…

2026/10/30 3:41:02

Windows下DLL加载失败(ERROR_MOD_NOT_FOUND)排查指南

1. 问题现象与初步分析当你在Windows平台上调用LoadLibraryA("F:\\svnroot\\mccv.dll")时返回NULL,并且GetLastError()返回错误码126,这是一个典型的动态链接库加载失败场景。错误码126对应的是"ERROR_MOD_NOT_FOUND",即…

2026/10/30 3:41:02

扩散模型如何提升端到端自动驾驶的轨迹规划能力

1. 扩散模型在端到端自动驾驶中的潜力解析自动驾驶领域正在经历一场由深度学习驱动的革命,而扩散模型(Diffusion Models)作为生成式AI的最新代表,正在为轨迹规划带来范式转变。传统自动驾驶系统通常采用模块化架构,将感…

2026/10/30 3:36:01

NANDA:构建去中心化AI智能体网络的技术架构与应用

1. 项目概述:NANDA与去中心化AI的崛起NANDA(Networked Agents and Decentralized AI)是MIT媒体实验室Camera Culture团队主导的前沿研究项目,由Ramesh Raskar教授担任首席研究员。这个项目正在构建一个被称为"Agentic Web&qu…

2026/10/29 17:05:52

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/29 17:06:02

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/29 17:06:13

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/30 0:00:46

NCP1342高频准谐振反激控制器:从设计约束到验收的完整方案

简介:NCP1342 高频准谐振反激控制器应用介绍译文文档,面向电源设计工程师、硬件研发人员及开关电源学习者,帮助读者跨越英文原版资料的语言门槛,系统理解这款高集成度 QR Flyback 控制器的设计要点。文档围绕芯片核心特性展开&…

2026/10/30 0:00:46

NCP1342准谐振反激电源设计:从选型到验收的全流程解析

简介:这份文档面向电源设计工程师与开关电源学习者,系统梳理NCP1342高频准谐振反激控制器的应用要点,帮助读者快速理解这款高集成度离线电源变换器控制芯片的工作机制与设计方法。内容涵盖芯片核心特性、引脚功能定义、电气特性参数表、最大额…

2026/10/30 0:00:46

Web系统自动登出机制设计与实现全解析

1. 系统自动登出机制的设计初衷在各类Web应用和后台管理系统中,自动登出功能早已成为标配。这个看似简单的功能背后,实际上涉及用户安全、资源管理和体验优化的多重考量。作为从业十多年的老开发,我见过太多因为登出逻辑设计不当导致的安全事…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑