今天为了玩一下水果忍者就一狠心拿出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#,现在只能勉强看懂程序,但问题在哪还是有点难过
现在问题找到了,是函数定义的空间不对,在外部定义就没有相应的函数类供函数调用了