今天为了玩一下水果忍者就一狠心拿出70M流量下了一个,昨天找到了一个代码不知道能不能用,现在的我对kinect方面还是个小白,也只有先找大神的程序看看先。把水果忍者装好后,然后进VS2013把昨天的代码编译出来,然后测试了下,竟然还可以玩的很开心,对代码的编写者顿时心生崇拜了。
玩了后分析了下这些代码,原来是通过手来模拟鼠标,不过只能在游戏里面测试,退了游戏,用这段程序来控制桌面还是比较吃力。
今天自己也写了一下kinect的代码,但是没办法的是我用的编译环境是vs2013,不是教程里面的2010,用起来还是有差别,也有以前没用过的VS的原因吧。在学kinect的同时还得学会用vs(真心感觉学校太拖节了,还用VC6.0教学,不得不吐槽一下)。这里的代码和书上的教程差不多,但是我的运行起来还是有问题
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Kinect;
namespace HellpKnectMatrx
{
class Program
{
static void Main(string[] args)
{
if (KinectSensor.KinectSensors.Count > 0)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Welcome to Kinect!!");
KinectSensor _Kinect = KinectSensor.KinectSensors[0];
_Kinect.DepthStream.Enable();
_Kinect.DepthFrameReady += new EventHandler<DepthImageFrameReadyEventArgs>(_Kinect_DepthFrameReady);
_Kinect.Start();
while (Console.ReadKey().Key != ConsoleKey.Enter)
{
}
_Kinect.Stop();
Console.WriteLine("Exit the Kinect Matrix...");
}
else
{
Console.WriteLine("Please check the kinect connect");
}
}
}
static void _Kinect_DepthFrameReady(object sender, DepthImageFrameReadyEventArgs e)
{
using (DepthFrame depthFrame=e.OpenDepthImageFrame())
{
if (depthFrame != null)
{
short[] depthPxelData = new short[depthFrame.PixelDataLength];
depthFrame.CopyPixelDataTo(bits);
foreach (var bit in bits)
Console.Write(bit);
}
}
}
}
main函数里面的应该没问题的,就是Kinect_DepthFrameReady这个函数出了点问题,提示说是要在void的地方输入class等等,还没学C#,现在只能勉强看懂程序,但问题在哪还是有点难过
现在问题找到了,是函数定义的空间不对,在外部定义就没有相应的函数类供函数调用了