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小小超级玩偶--小小潜水员

THE END!

---------------

若有问题,请随时联系。

非常感谢!

时间: 2024-07-30 21:47:52

Kinect小小玩偶游戏----小小潜水员的相关文章

Sublime text 2 for linux 中文输入法无法使用的解决方法

Sublime Text 2 Linux 版一直都没有解决中文输入这个问题. 目前中文输入有三种方案,分别是: 方案一:使用小小输入法 小小输入法新版本已经支持再Sublime Text 下输入中文 关于小小输入法的安装以及简介: http://blog.ubuntusoft.com/small-input.html http://forum.ubuntu.org.cn/viewtopic.php?t=226677 方案二:打开另外一个可以输入中文的输入框,输入中文后拷贝进Sublime Tex

第三章—Windows程序

这一章我都不知道该如何写了,呵呵~~ 毕竟,Win32是一个非常深奥的系统,目前还容不得我这种 小辈在这儿说三道四,不过,我既然是要写给那些入门阶段的朋友们看的,又不是写给那些搞程序设计老鸟看的,所以,我也犯不着怕被人背后指着骂 本章的名字就叫<Windows程序>而不是<Windows程序设计>所以,我只是讲一些关于Windows程序运作的原理: Windows 为什么叫Windows,相信所有用过的朋友都可以明白,那桌面上一个一个的窗口,就是它名字的由来.也就是这一个又一个窗口

QTimer之显示当前日期时间,会读秒的哦

首先新建项目,就不多说什么了. 然后在源文件里的xxx.cpp文件添加如下内容, //在ui代码块里添加QTimer定时器,关联timeout()信号和ShowDateTime()槽,并设置定时器执行时间周 QTimer *timer = new QTimer(this);  //这里this不要忘了哈,不然需要自己手动添加资源释放 connect(timer, SIGNAL(timeout()), this, SLOT(ShowDateTime()));  //关联信号和槽 timer->st

小小记事本

页面很简单,是这个样子的.在点击tableviewCell 的时候, 右面的view可以自动弹出,在该view中输入以及显示输出,将该view拖回到右边时,刷新tableview.在重新打开程序的时候内容也仍然在.下面说一下实现过程吧 一.判断进入页面 即判断是否存在plist文件以及版本号是否相同,在AppDelegate.m中写入 -(void)addFirstPage { UIStoryboard *storyboard = [UIStoryboard storyboardWithName

HDU 4517 小小明系列故事---游戏的烦恼 (模拟题)

问题描述 : 小小明最近在玩一款游戏,它由n*m大小的矩阵构成,矩阵上会随机产生一些黑色的点,这些点它们可能会连在一起也可能会分开,这些点的个数没有限制,但是每个1*1方格中最多只可能有一个黑点产生.游戏要求玩家以最短的时间用x*y的小矩阵覆盖这个大矩阵,覆盖的要求有以下2点: 1.  x*y大小的小矩阵内必须有x*y个黑点. 2. 多个小矩阵可以重叠,但是每个小矩阵放置的位置必须是独一无二的,即不同的小矩阵内的黑点不能完全相同.例如1*2的矩阵可以横着放,也可以竖着放,这两种方法是不同的,即使

小小小女神啊~~~

丹麦皇家芭蕾舞团小小小女神~~ 路人甲:"看到丹麦女神之后,我再也不敢随便叫别人是女神." 路人乙:"人世间原来还有长成这样的女孩子!"" 路人丙:"瞬间觉得自己见识少了."  小小小女神啊~~~,布布扣,bubuko.com

关于游戏[小小枪战:反恐精英]的欺骗作假行为

游戏名称 :小小枪战:反恐精英/Little Gunfight:Counter-terror 消费者不是傻瓜! 游戏里面的联网对战功能就是玩家与电脑对战.我只能说,这个游戏公司的AI做的不错. 证据1:源代码 a.a.a.java 里面有一个机器人的玩家名称列表,什么 "极品黑木耳" "爆头王子" "孤与谁共" ...(玩过的人都懂) 证据2:源代码 a.a.b.g.java 里面有一个敏感词列表,就是玩家起名字的时候不允许有敏感词.什么 &qu

小小六的前端学习心得

打算写这篇文章已经好久了,但是文采不行,不知道如何下笔,今天终于鼓起勇气用我拙劣的作文水平来讲述一下这段时间我学习前端开发的心得. 先从我的专业说起.我本人是学计算机的.全名是叫计算机科学与技术(软件方向),学校虽然是一个211学校,学习成绩也还行,但是对于编程这一块,真的是很弱很弱.所以我对计算机编程真正的学习是从实习这段时间开始的.说到这里,我必须得感谢带我进入前端的学长.因为他我才能在今天坐在这里写这篇学习心得. 所以,首先最好是有一个愿意耐心的指导你学习的人,也就是一个好的师傅.他能根据

STM32之输入捕获以及小小应用(库)

五一之际,先祝大家五一快乐.其实快乐很简单,工作的人有假放,学习的人也有假放,像我,有假放才有更多的时间学自己想学的东西.51假期学51,可惜没有32假期呀.好了..言归正传,大家听过吸星大法吧..在这里.智商和情商比我高的人估计又知道我要说什么了..没错了..今天我们来了解"葵花宝典"第STM32篇之输入捕获,也就是上文所讲的"吸星大法", 那输入捕获可以用来干嘛呢??这个问题问的好,输入捕获可以用来测量脉冲宽度或者测量频率,假如要捕获一个脉冲的高电平脉宽,我们要