5.1 变脸游戏

发布时间:2026/11/3 19:22:20

5.1 变脸游戏 实验简介本次实验使用微信小程序加速计 APIwx.onAccelerometerChange实现变脸小游戏。实现两种切换脸谱方式点击图片切换、摇晃手机切换脸谱扩展功能统计并展示累计变脸总次数。 开发环境微信开发者工具基础库 3.7.5✅实现功能点击脸谱图片随机切换脸谱变脸次数 1真机摇晃手机触发加速计监听自动切换脸谱弹出提示变脸次数 1页面实时展示累计变脸总次数⚠️注意模拟器无法模拟摇晃摇一摇功能需要手机真机预览测试核心 API 说明表格API作用wx.onAccelerometerChange(cb)监听加速度数据手机晃动时持续回调拿到 x/y/z 三轴加速度wx.offAccelerometerChange()取消加速计监听页面销毁 / 隐藏时调用节约性能wx.showToast()弹出轻提示摇晃成功时弹窗提醒用户Math.random()生成随机数随机选取脸谱下标原理手机摇晃时三轴加速度数值会明显变化本实验判断任意轴绝对值大于 0.5 即判定为摇晃动作。项目文件结构MINIPROGRAM-3 ├── images │ ├ 1.png │ ├ 2.png │ ... │ └ 14.png ├── pages │ └── index │ ├ index.js │ ├ index.wxml │ ├ index.wxss │ └ index.json ├── app.json └── app.wxss完整代码1. app.json{ pages: [ pages/index/index ], window: { navigationBarTextStyle: black, navigationBarTitleText: 变脸游戏, navigationBarBackgroundColor: #ffffff, navigationStyle: default }, style: v2, sitemapLocation: sitemap.json, lazyCodeLoading: requiredComponents }2. pages/index/index.wxmlview classbox view classtitlewx.onAccelerometerChange示例/view image src{{faces[index]}} modewidthFix bindtapchangeFace/image view classcount-text累计变脸总次数{{totalCount}}/view /view3. pages/index/index.wxsspage { height: 100vh; background-color: #ffffff; } .box { margin: 20rpx; padding: 20rpx; border: 2rpx solid purple; } .title { font-size: 40rpx; font-weight: bolder; text-align: center; margin-bottom: 30rpx; color: rebeccapurple; } image { margin: 20rpx; width:100%; } .count-text { font-size: 40rpx; color: blue; text-align: center; margin-top:30rpx; }4. pages/index/index.jsPage({ data: { index: 0, faces: [ /images/1.png, /images/2.png, /images/3.png, /images/4.png, /images/5.png, /images/6.png, /images/7.png, /images/8.png, /images/9.png, /images/10.png, /images/11.png, /images/12.png, /images/13.png, /images/14.png ], totalCount:0 }, createRandomIndex(n) { return Math.floor(Math.random() * n) }, changeFace() { let newIdx this.createRandomIndex(this.data.faces.length) this.setData({ index: newIdx, totalCount: this.data.totalCount 1 }) }, onShow() { wx.onAccelerometerChange((res) { if (res.x 0.5 || res.y 0.5 || res.z 0.5) { this.changeFace() wx.showToast({ title: 摇一摇成功, icon: success, duration: 1000 }) } }) }, onHide() { wx.offAccelerometerChange() } })实验踩坑记录坑 1图片加载失败控制台报 500 资源加载错误原因图片路径写错、文件夹名称不匹配代码写/images/1.png但是没有images文件夹或者图片放错目录 ✅解决项目根目录新建images文件夹全部脸谱图片放入路径严格一致修改后清缓存重新编译。坑 2模拟器摇晃手机没有反应原因模拟器不支持加速度传感器wx.onAccelerometerChange在模拟器无法触发 ✅解决使用真机预览扫码在手机上摇晃测试摇一摇变脸功能。坑 3页面离开之后摇晃还会触发变脸原因只开启监听没有取消加速计事件监听监听持续后台运行 ✅解决在onHide生命周期调用wx.offAccelerometerChange()关闭监听。坑 4顶部出现黑色状态栏、标题栏消失原因navigationStyle设置为custom自定义导航 ✅解决app.json中设置navigationStyle:default启用小程序原生导航栏。✨实验收获掌握小程序设备传感器 API加速计wx.onAccelerometerChange可以感知手机姿态、摇晃动作。理解页面生命周期onShow、onHide页面显示时开启监听页面隐藏时释放监听避免资源浪费。学会随机数实现随机切换素材使用data数据绑定实现页面动态更新。图片资源路径是小程序高频报错点绝对路径/images/xxx.png从项目根目录开始查找资源。区分模拟器和真机能力差异传感器类 API 大多需要真机调试。
延伸阅读

更多相关文章

2026/11/3 19:22:20

V. V. Prasolov. Intuitive Topology

V. V. Prasolov 所著的《Intuitive Topology》是拓扑学领域口碑极佳的低门槛入门经典,属于美国数学会《Mathematical World》系列第4卷,全书仅93页,完全以直观可视化的方式讲解初等拓扑核心内容,零基础友好。 📖 基础…

2026/11/3 19:22:20

ESP32-S3 呼微信接通后没声音之解决办法

ESP32-S3 呼微信接通后没声音之解决办法 上一篇:移芯 EC718PM 上说话一卡一卡之解决办法 本文代码来自开源仓库 github.com/tangeai/xiaotai-esp32(主工程 lckfb-szpi-esp32s3-tirtc/)。代码有节选,常量和结构没改。 把微信语音通…

2026/11/3 19:22:20

中亚跨境物流避坑指南:渠道选型、密度计费与清关实操全拆解

中亚跨境物流避坑指南:渠道选型、密度计费与清关实操全拆解 做跨境供应链这几年,接触过上百位发中亚、俄线的卖家和采购商,发现 90% 的新手第一次发货都会踩同一个坑:只看单价,忽略计费规则、清关能力和渠道稳定性&…

2026/11/3 20:02:24

HDMI转MIPI桥接选型:IT6616的4K带宽与lane配置

简介:联阳IT6616芯片数据手册面向硬件工程师、嵌入式显示方案开发者及HDMI-to-MIPI桥接选型人员,聚焦HDMI 1.4转MIPI CSI/DSI的低功耗、高质量视频转换需求,也可为替代TC358743XBG/TC358749XBG、LT6911C等方案提供器件级参考。压缩包内仅含1个…

2026/11/3 20:02:24

会话Cookie缺少HttpOnly告警:原理、修复与验证实战

“会话cookie中缺少HttpOnly属性”——这句话第一次出现在扫描报告里的时候,大多数人的第一反应都是:这玩意儿听着就不严重。它不像注入类问题那样能直接拖库,也不像反序列化那样一眼就是高危,就安安静静躺在中危列表里&#xff0…

2026/11/3 20:02:24

风电与储能协同调频技术解析

1. 风电调频:被低估的电网稳定器当大多数人提起风力发电机组时,第一反应往往是"靠天吃饭的不稳定电源"。但在这个新能源占比快速提升的时代,我亲眼见证了风电从单纯的"发电宝宝"成长为电网频率守护者的全过程。特别是在四…

2026/11/3 20:02:24

ABAP屏幕编程实战:从SE38/SE51到PBO/PAI与OK_CODE

简介:这份资源面向刚接触 SAP 系统界面开发或需要补齐屏幕设计基础的 ABAP 学习者,聚焦「screen 程序设计」这一核心技能,解决从创建程序、设计 Screen 到处理控件与逻辑流的完整流程掌握问题。压缩包内共 1 个 doc 文件,约 1.66M…

2026/11/3 20:02:24

前端图片上传0KB问题解析与解决方案

1. 前端图片上传0KB问题深度解析最近在VueElementUI项目中处理图片上传时,遇到了一个典型问题:部分用户上传的图片在服务器端显示为0KB的破损文件。这个问题看似简单,实则涉及前端文件处理机制、浏览器API使用规范、前后端交互协议等多个技术…

2026/11/3 19:57:23

Git远程与本地仓库文件传递核心操作指南

1. Git远程与本地仓库文件传递的核心逻辑作为版本控制系统的实际工作场景,Git的远程与本地仓库文件传递是每个开发者必须掌握的生存技能。我在团队协作项目中经历过无数次文件同步需求,从简单的代码推送到复杂的多分支合并,深刻理解这个看似基…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32实战:基于MAX14431数字隔离器的SPI隔离通信方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

工业SPI隔离通信设计:MAX14431BAEE+与STM32L4A6RG实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 1:04:48

STM32+NRF24L01无线抢答器:硬件设计、通信协议与低功耗实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

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

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

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