Scratch也能玩体感游戏

news/2024/11/30 9:37:22/

Scratch也能玩体感游戏

上一次我们利用图像分类技术,让机器学会了识别石头剪刀布(如果没明白说啥请看上一帖)等三种手势,如果大家有试验的话,可能会发现识别率并不是太高,会有误判,问题主要在于我们给机器训练的数据量还是太少,不能完全覆盖三种手势的所有类型,如果数据量足够大,识别率会有明显提高的,机器也需要一场“题海战”啊。
在上周笔者参加了杭州市青少年科技节的闭幕式,看到小学生们用Switch玩体感游戏,玩的不亦乐乎。我就想能用人工智能插件实现体感玩法么?人工智能插件中有一个类型叫姿态分析似乎可以识别面部的关键点及人体的关键点,那么利用这个姿态分析插件中的关键点位置坐标,可以帮助我们实现用身体的某个部分控制游戏角色移动么?
在这里插入图片描述
带着以上问题,笔者开始了改造之旅,因为是初试身手,所以笔者希望选择动作相对简单的游戏。最后笔者敲定了打砖块这款游戏,说起打砖块这个游戏,它是雅达利公司开发,乔布斯及沃兹尼克参与设计的Breakout的改编版,当年也算是风靡一时的作品了。
那么打砖块这个游戏用Scratch如何实现呢?下面笔者就通过五个不同的角色来完成一个极简版的打砖块。其中分别用到挡板、球、砖块、gameover及youwin五个角色、其中挡板、球和砖块都是用的系统默认角色库里的内容,仅仅调节了大小,后两个角色为绘制角色,相信大家也可以轻松搞定。
在这里插入图片描述
下一步我们就一起来看看每个角色的程序如何编写:
1、弹球角色:
弹球角色的程序主要有三个部分:一个用来控制弹球的运动轨迹,一个用来控制弹球的反弹方向,一个用来判断弹球是否落地(游戏结束)。
程序分别为:
(1)控制弹球的运动轨迹
在这里插入图片描述
重复执行之外的部分为弹球的初始位置和初始面向方向,重复执行之内的移动积木控制弹球的移动速度,剩下三个判断反弹情况,为了程序可读性,我将碰到挡板的反弹程序写成了广播的形式。
(2)控制弹球碰到挡板后的反弹方向
在这里插入图片描述
用来控制反弹方向及弹球的运行速度。
(3)判断弹球是否落地
在这里插入图片描述
用挡板所在的Y坐标来判断弹球是否落地。

2、砖块角色
砖块角色的程序一共包含两个部分,第一部分砖块阵列的生成,第二部分砖块部分被击中的消失及得分反弹。
分别为:
(1)砖块阵列生成
在这里插入图片描述
设置好砖块的起始位置及大小之后,隐藏本体并让克隆体通过循环排布为7*4的一个阵列,作为我们的弹球攻击目标。
(2)砖块击中消失及得分反弹
在这里插入图片描述
当克隆体砖块显示在屏幕最上方之后,凡被弹球击中则加分并删除。
3、GameOver角色
程序如下:
在这里插入图片描述

4、YouWin角色
程序如下:
在这里插入图片描述
5、挡板角色
终于来到了我们的重头戏,挡板角色,我们之前传统的打砖块玩法一般会采用鼠标来控制挡板,这时候的程序如下:
在这里插入图片描述
这时候只要我们鼠标左右移动,就可以控制挡板去拦截弹球了。
至此,整个打砖块游戏就算是完成了,但是我们说这次要做的是一个体感的打砖块,所以之前的部分是不合格的,我们需要再对控制挡板的程序进行一些修改,使它具备我们需要的能力。
那么如何利用姿态分析积木去控制我们的挡板呢?只需要对挡板角色的程序进行如下的改进即可。
在这里插入图片描述
由于姿态分析还是基于摄像头传送的图像来分析的,所以第一步还是要打开摄像头,设置好挡板的初始位置之后就是如何控制挡板的问题了,首先我们要重复执行姿态检测来判断你目前的姿态,因为姿态检测会同时检测多个点位,所以我们以鼻子这个点位作为我们的检测目标,同时也让挡板跟着鼻子的X坐标来移动,这里有一个叫置信度的名词,顾名思义就是可以相信为真的程度,最高为1,最低为0,以小数来表示,我们选择了0.5作为我们的判断依据,如果机器判断该点位为鼻子的可信度为0.5以上,则让挡板跟随我们的鼻子来进行移动。
那么今天我们的整个游戏就改编完成了,由于软硬件性能的局限,可能在姿态识别时会有一点延迟,大家可以通过改变弹球的速度来调整游戏的难度,同时如果大家觉得鼻子控制起来很累,也可以试试左右手腕等其他点位,毕竟姿态分析积木中可以使用的关键点位有17个之多。
在这里插入图片描述
大家也可以根据官方提供的模板把整个游戏做的更美观一些,这里只是实现了最基本的功能而已,同时大家也可以到平台使用其他各类AI插件,并用姿态分析插件做出自己心仪的游戏。
也可添加我的微信号13772884134,注明进群交流。


http://www.ppmy.cn/news/368581.html

相关文章

06 体感游戏设计

摘要 Windows Phone 7 智能型手机支持完整的传感器 (Sensor) 功能,包括:重力传感器 (G-Sensor)、数字罗盘、趋近传感器、以及环境光线传感器,这些传感器可以视为另外一种型态的输入,可以用来控制游戏程序的进行。在这一篇文章&am…

[体感游戏]关于体感游戏的一些思考(五) --- 导航

正如我在第二篇博文提到的:在3D虚拟世界中导航是一项充满挑战性的工作。导航模型的实现并不难,难的地方在于设计一个可以让人感觉比较舒服,不会造成玩家总是出现感知上的困难的3D水平。我们真的生活在3D世界中吗? 我们的一生几乎都…

基于手机摄像头设计一款捕捉玩家上半身的体感运动游戏

基于手机摄像头设计一款捕捉玩家上半身的体感运动游戏 以下是一些可能的例子: 手势识别:通过识别玩家手部的动态姿势,例如张开手掌,扇动手臂等等,来控制游戏中的角色进行各种操作。 肩膀运动:利用玩家肩膀…

【C++/嵌入式笔试面试八股】二、21.分层模型 | HTTP

分层模型 01.画出OSI和TCP/IP协议栈的对应关系 对应关系记忆2113 02.什么是OSI七层模型?每层列举2个协议。❤️ OSI七层模型及其包含的协议如下 物理层: 传输单位为bit 功能:通过物理媒介透明的传输比特流,确定机械及电气规范 主要包括的协议为:IEE802.3 CLOCK RJ45 数据链…

体感游戏

http://www.cnkinect.com/

Java 中导入带图片的 Excel

在Java中使用EasyExcel库导入带有图片的Excel文件可以通过以下步骤完成&#xff1a; 添加依赖&#xff1a;首先&#xff0c;在您的Java项目中添加EasyExcel库的依赖项。您可以在Maven项目的pom.xml文件中添加以下依赖项&#xff1a; <dependency><groupId>com.ali…

诺基亚5800随心与LG GW620非常贴身竞争

诺基亚5800随心与LG GW620非常贴身竞争 诺基亚5800随心而LG GW620是被提供了大量的复杂的功能&#xff0c;到今天用户两款手机。这两个小工具有很多相似之处&#xff0c;以及不同点。 毫无疑问&#xff0c;手机已经成为大多数人的日常需求。一些手机品牌在手机的舞台上&#xf…