上一篇博文介绍了一下Kinect的简单姿势识别,详细内容请转到http://yacare.iteye.com/blog/1950112,鄙人之前还写过一个俄罗斯方块的程序,具体请看http://yacare.iteye.com/blog/1949398,本博文主要将这两者结合起来,用Kinect姿势来控制游戏。仅作为一个抛砖引玉的案例,不知道公安局是否备案(哈哈,开个玩笑)。来说明去我们利用Kinect开发使用的只是其9牛1毛,杯水车薪的功能。
至于纯代码键盘控制的俄罗斯方块游戏请阅读C#实现俄罗斯方块,在此就不展开说明。此博文是基于二维仿真版的俄罗斯方块制作。界面与之前的可能有点不一样,但用Kinect姿势控制游戏的部分是基本相同的。
首先,我们要自定义一个姿势库,来存放自定义的姿势。
定义该姿势为方块旋转,左右肩膀,手腕,手掌都为水平方向,阈值角度为8度
定义该姿势为方块左移,左边肩膀,手腕,手掌都为竖直向上方向,阈值角度为10度 ;右边肩膀,手腕,手掌都为竖直向下方向, 阈值角度为30度。
定义该姿势为方块右移,右边肩膀,手腕,手掌都为竖直向上方向,阈值角度为10度 , 左边肩膀,手腕,手掌都为竖直向下方向, 阈值角度为30度。
定义该姿势为方块加速下落,左右边肩手腕,手掌都为水平方向,阈值角度为8度 , 左右肩膀,手腕与竖直竖直向下方向成25度(多次测试,手自然交叉接近这个角度), 阈值角度为8度。
/// <summary> /// 自定义姿势库 /// </summary> private void PopulatePoseLibrary() { this.poseLibrary = new Pose[4]; //Pose 1 - 伸开双臂 Arms Extended this.poseLibrar