Kinect小小玩偶游戏----小小潜水员
本文章由cartzhang编写,转载请注明出处。 所有权利保留。
文章链接: http://blog.csdn.net/cartzhang/article/details/44939887
作者:cartzhang
Kinect小小玩偶游戏----小小潜水员
一、游戏说明
通过Kinect控制小玩偶来玩Unreal游戏,左右手抬起可左右移动;右手举过头顶,可跳起;还可以发射蜗牛子弹来攻击小鱼。使用UE4的2D效果来实现。
先睹为快,萌萌哒的小小主角:
二、主要的实现接口
头文件:
UFUNCTION(BlueprintCallable, Category = KINECTUE)
void HandState(const int32 HandType); UFUNCTION(BlueprintCallable, Category = KINECTUE)
void StartCheckHandsPushDriveHand(); UFUNCTION(BlueprintImplementableEvent, meta = (FriendlyName = "Right Hand Push"))
virtual void RightHandPush(); UFUNCTION(BlueprintImplementableEvent, meta = (FriendlyName = "Left Hand Push"))
virtual void LeftHandPush(); UFUNCTION(BlueprintImplementableEvent, meta = (FriendlyName = "Left Hand Move"))
virtual void LeftHandMoveLeft(); UFUNCTION(BlueprintImplementableEvent, meta = (FriendlyName = "Right Hand Move"))
virtual void RightHandMoveRight(); void RightHandOverHeadForJump();
实现文件,cpp文件:
void ATwoDPaperCharacter::HandState(const int32 HandType)
{
int iFlag = UDKinectHandsReachOutGesture(0, HandType);
if (GEngine && iFlag == 1)
{
const float fMoveSpeed = 1.0f;
switch (HandType)
{
case 1:
LeftHandMoveLeft();
break;
case 2:
RightHandMoveRight();
break;
default:
break;
}
}
} void ATwoDPaperCharacter::StartCheckHandsPushDriveHand()
{
int iRightFlag = UDKinectRightHandPushGesture(USER_INDEX);
if (iRightFlag == 1)
{
RightHandPush();
} int iLeftFlag = UDKinectLeftHandPushGesture(USER_INDEX);
if (iLeftFlag == 1)
{
LeftHandPush();
}
} void ATwoDPaperCharacter::RightHandOverHeadForJump()
{
int iRightHandOverHeadFlag = UDKinectRightHandOverHeadGesture(0);
if (GEngine && iRightHandOverHeadFlag == 1)
{
FString TmpString = "Right Hand Over Head now...";
//GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, TmpString);
Jump();
}
}
三、Blueprint 实现截图(部分)
其中逻辑控制,只展示部分。因为太多了,各个函数也复杂。
下图为受到攻击的Blueprint。
下面为控制的BP。
发射蜗牛导弹的射击Blueprint。
四、游戏截图
主要包括,左右移动,跳起,左边发射攻击,右边发射子弹攻击,被小鱼咬到的受伤级别。
从上面两张图,可看到小潜水员受到小鱼的攻击而变化了颜色。
其中,根据受伤程度不同,共有6种颜色变换。
小小潜水员在向左右发射蜗牛导弹,来攻击小鱼。
五、游戏视频
视频已经上传到Youku.
地址如下:http://v.youku.com/v_show/id_XOTI4NjUyMzIw.html
Kinect小小超级玩偶--小小潜水员
Kinect小小玩偶游戏----小小潜水员的更多相关文章
- 第三章—Windows程序
这一章我都不知道该如何写了,呵呵~~ 毕竟,Win32是一个非常深奥的系统,目前还容不得我这种 小辈在这儿说三道四,不过,我既然是要写给那些入门阶段的朋友们看的,又不是写给那些搞程序设计老鸟看的,所以 ...
- 用js立即执行函数开发基于bootstrap-multiselect的联动参数菜单
代码调用方式如下: data=[{F0:总分类cd,F1:总分类name,F2:大分类cd,F3:大分类name,F4:中分类cd,F5:中分类name,F6:小分类cd,F7:小分类name},.. ...
- JavaScript 对象的创建和操作
<script> // 对象是属性的无序集合,每个属性都是一个名/值对. 属性名称是一个字符串. // 对象种类 // 内置对象(nativ ...
- 【Python】(六)Python数据类型-列表和元组,九浅一深,用得到
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文分十个章节介绍数据类型中的列表(list)和元组(tuple),从使用说到底层实现,包您满意 干货满满,建议收藏,需要用到时常看看. 小伙伴们 ...
- 大闸蟹的OO第二单元总结
OO的第二单元是讲多线程的协作与控制,三次作业分别为FAFS电梯,ALS电梯和三部需要协作的电梯.三次作业由浅入深,让我们逐渐理解多线程的工作原理和运行状况. 第一次作业: 第一次作业是傻瓜电梯,也就 ...
- (转)小小科学家的归来 by 王珢
小小科学家的归来 by 王垠很多人来信关心我的现状,所以在写别的技术性文章之前,先说说我现在的情况吧.虽然自己追求的东西和经历都比较不同寻常,但是也许可以给奋斗中的人们一些慰藉和鼓励. 首先是超级好消 ...
- canvas学习笔记:小小滴公式,大大滴乐趣
声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 最近想弄一个网页,把自己学HTML5过程中做的部分DEMO放上去做集合,但是,如果就仅仅做个网页把所有DEMO一个一个排列又觉得太难看了. ...
- hdu ---(4517)小小明系列故事——游戏的烦恼(Dp)
小小明系列故事——游戏的烦恼 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)To ...
- PHOTOSHOP 中画笔工具和铅笔工具的一个小小差别
今天在作图的时候偶然发现的一个以前并没有在意画笔和铅笔的小小区别,情况是这样的,我在做图像处理,需要一个单像素的闭合曲线灰度图来做实验,然后用画笔工具把直径调到1之后去作图,放大之后发现,跟预想的结果 ...
随机推荐
- 虚拟机上的企业网络管理系统(cisco works 2000安装配置)
虚拟机上的企业网络管理系统 北京 李晨光 相关文章 Cisco Works 2000 网络管理软件安装.配置全过程 http://you.video.sina.com.cn/b/18168631-14 ...
- 《一》File 类的介绍
File 类:文件和目录路径名的抽象表示. 注意:File 类只能操作文件的属性,文件的内容是不能操作的. 1.File 类的字段 我们知道,各个平台之间的路径分隔符是不一样的. ①.对于UN ...
- DG查看恢复进度
查看恢复进度 (1)查看进程的活动状态 V$MANAGED_STANDBY视图专用于显示物理Standby数据库相关进程的当前状态,该视图中的列也很有特点,查看进程状态时,通常我们会关注PROCESS ...
- erroe:plot.new() : figure margins too large
使用R时多次出现这个错误,plot.new() : figure margins too large,提示图片边界太大 解决方法,win.graph(width=4.875, height=2.5,p ...
- 洛谷 P1916 小书童——蚂蚁大战
P1916 小书童——蚂蚁大战 题目背景 小A在你的帮助下,开始“刷题”,他在小书童里发现了一款叫“蚂蚁大战”(又称蛋糕保卫战)的游戏.(你懂得) 题目描述 游戏中会出现n只蚂蚁,分别有a1,a2…… ...
- Android DiskLruCache全然解析,硬盘缓存的最佳方案
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/28863651 概述 记得在非常早之前.我有写过一篇文章Android高效载入大图. ...
- 含有打印、统计DataGridView(1)
using System;using System.Collections.Generic;using System.Text;using System.Drawing.Printing;using ...
- (错误记录)git push 报错 403
在push的时候遇到错误: RPC failed; HTTP curl The requested URL returned error: Forbidden 如果是自己创建的项目的话,可以在网上找到 ...
- java的23中设计模式
一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接 ...
- CC2530定时器使用
定时器学习 文件夹 说明 依据数据手冊可知CC2530总共同拥有4个定时器,可是定时器2被系统占用,可用的仅仅有三个,分别为定时器1/3/4 Timer在协议栈的代码位置为hal_timer ...