13964| 5
|
小学生一学就会制作的体感游戏之dou音潜艇 |
#设计思路# 春节期间,因为疫情原因,创客圈里搞了国内创客史上第一次云创马(线上创客马拉松),还有火爆的奥斯卡式的云颁奖,很幸运入围了三个作品,获得了心仪很久的二哈,也就是HUSKYLENS视觉识别传感器,刚刚收到,立马开箱做个案例玩玩,学习不行,玩游戏还可以,那就做一个体感游戏玩玩吧,做什么好呢,最近抖音比较流行潜艇闯关,应该没什么难度,就做这个吧,我们先来看一下完整的游戏视频 视频如下: 很多人会问,体感游戏不应该是真人体验吗,说对了,肯定得是真人体验,不过自己一个人玩,还要拍摄确实有点困难,只好拿一个微信头像代替自己玩一下啦 #器材清单#microbit*1 microbit扩展板*1 HUSKYLENS视觉识别传感器 OBLOQ物联网模块*1(你如果用掌控板的话就不需要这个了) usb下载线,电源线,杜邦线等 #编程环境# mind+ 为什么要用一个物联网模块呢,其实这也不是我最初的想法,刚开始以为mind+控制二哈是可以用实时模式的,如果是实时模式那么很多scratch 的游戏就都可以玩起来了,大概看了一下扩展里是不支持的,然后就思考了另外一种方式,该把屡试不爽的神器SIOT请出来了,通过联网的方式来玩体感游戏,那么想要让二哈联网你可以选择掌控板这种esp32的主控直接可以联网,如果是microbit或者Arduino的话是必须要一个物联网模块的,这时候就要用到OBLOQ模块,方法都一样,主控大家随便选择哦 #接线图#正负极常规接就可以哦,二哈可以用iic的方式供电也可以单独用usb供电,都接着也没关系,内部会自己选择的 #二哈学习# 停课不停学,这个年代二哈也要学习了,哈哈哈,没开玩笑,二哈真的有学习功能的哦,很简单的啦,看下面的教程就可以学会 http://wiki2.dfrobot.com.cn/HUSKYLENS_V1.0_SKU_SEN0305_SEN0336 这次的体感游戏用的是第一种模式,人脸识别,先来识别一下我的微信头像,如下图: 蓝色的框代表识别成功,ID1是第一个识别的人脸,二哈的人脸模式可以识别多人哦,很厉害 学习完毕,我们开始编程 #程序编写# #二哈识别端程序#首先要把siot启动起来哦,具体方法可以参考之前的教程 主控选择micobit,通信模块选择OBLOQ,传感器选择二哈ai摄像头 OBLOQ MQTT配置如下,密码是统一的dfrobt,IP地址是自己电脑的ip哦,如何获取ip看前面的帖子 二哈识别端microbit主控的全部程序 这里为什么发送的是ID1的y中心呢,这个y中心就是检测到的人脸上下宽度的中心位置,我们要做的就是用二哈来识别人脸的上下动作,来完成潜艇闯关的游戏,发送这个数据是非常有用的,电脑游戏端的程序就可以看出来效果了,二哈的屏幕坐标如下图,了解这个很关键,很有用哦 #电脑游戏端程序#电脑游戏端的角色共三个,第一个为旺仔的头像相当于人脸了,第二个是潜艇角色,抖音的游戏是潜艇跟随人脸头像移动的,那么我们就跟随旺仔头像移动好了,第三个为障碍物的角色 启动mind+,选择实时模式 扩展选择网络服务里的MQTT MQTT部署如下: 要和二哈识别端的部署一致 旺仔角色的完整程序: 变量Y是二哈识别端人脸识别ID1的y中心,大家对scratch的舞台坐标系会比较熟悉y坐标的范围是-180-180,如下图所示,二哈识别出y中心的运动范围大致在二哈屏幕的40-200之间,也就是我们需要把40到200和-180到180的范围进行映射,就可以达到我们想要控制游戏角色上下移动的效果了,我的计算公式如下: 如果变量y也就是y 的中心是小于120的(120正好是二哈屏幕宽度的中间位置,旺仔角色y坐标设定为180-(y中心-40)*2.25),否则将旺仔y坐标设定为(y中心-120)*-2.25,当然我的这种换算思路可能不是最优的,大家也可以再优化优化哦 接来下是潜艇角色的程序,很简单 接下来是障碍物角色的程序,这里共有四个不同的造型,随机切换,然后增加碰到障碍物的音乐让游戏更逼真 当然一个障碍物做好了你还可以再复制一个,让游戏更有趣 最后是背景的程序了,设置背景音乐,和舞台透明化,需要用到视频侦测功能模块 , #角色编辑技巧#最后分享一个ppt抠图制作角色的技巧,如下图,ppt插入图片,选择扣除背景 如果需要游戏素材也可以在公众号回复“素材”关键字获取 #总结# 体感游戏只是一种真实游戏的仿真,如果你还想要更加好玩,可以继续增加一些比如分数,速度,关卡等任务,让游戏变得更吸引人,也可以做一些其他的仿真游戏,比如切水果,接苹果等等,造物让生活更美好,欢迎大家一起来玩 如需联系,请+旺仔爸爸 188752544995 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed