OPENNI实践-体感方向盘玩赛车游戏(2)

这一篇是关于获取到的数据与虚拟手柄之间通信的过程。首先设置要发送的指令,然后通过WriteFile将指令发送给设备。

[cpp] view plain copy

  1. <span style="font-size:14px;">DWORD WINAPI SendofBody_left(LPVOID lpParam)
  2. {
  3. DWORD dwWaitResult_Event=1;
  4. static bool mmm=true;
  5. while(true)
  6. {
  7. dwWaitResult_Event=WaitForSingleObject(hEvent_send,INFINITE);
  8. if (dwWaitResult_Event==WAIT_OBJECT_0)
  9. {
  10. *(WORD*)(g_controlreport+LEFTJOYSTICK_X_POS)=nMove_LetfJoystic_X;
  11. *(WORD*)(g_controlreport+LEFTJOYSTICK_Y_POS)=nMove_LetfJoystic_Y;
  12. if (0==nMove_RightJoystic_X)
  13. {
  14. *(UCHAR*)(g_controlreport+Xtion_GamePad_Button)=1;//放氮气
  15. }
  16. *(WORD*)(g_controlreport+LEFTJOYSTICK_X_POS)=nMove_LetfJoystic_X;
  17. *(WORD*)(g_controlreport+LEFTJOYSTICK_Y_POS)=nMove_LetfJoystic_Y;
  18. WriteControlData(g_controlreport);
  19. nMove_LetfJoystic_X=0;
  20. nMove_LetfJoystic_Y=0
  21. nMove_RightJoystic_X=0x80;
  22. nMove_RightJoystic_Y=0x80;
  23. memset(g_controlreport,0,sizeof(g_controlreport));
  24. g_controlreport[0]=REPORTID_CONTROL;
  25. g_controlreport[1]=REPORTLEN_GAMEPAD;
  26. g_controlreport[2]=REPORTID_GAMEPAD;
  27. g_controlreport[6]=0x100;
  28. g_controlreport[7]=0x100;
  29. }
  30. ResetEvent(hEvent_send);
  31. }
  32. }
  33. DWORD WritContorlData(UCHAR* pData)
  34. {
  35. DWORD dwInfo;
  36. WriteFile(g_hControlDevice,g_controlreport,REPORTLEN_CONTROLDEVICE,&dwInfo,NULL);
  37. return GetLastError();
  38. }</span>
时间: 2024-10-02 16:29:16

OPENNI实践-体感方向盘玩赛车游戏(2)的相关文章

使用HTML5开发Kinect体感游戏

一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决,吸引了大量玩家参与. 表面上看,这款游戏与其它体感体验无异,实际上,它一直运行于浏览器Chrome下,也就是说,我们只需要掌握前端相应技术,就可以开发基于Kinect的网页体感游戏. 二.实现原理 实现思路是什么? 使用H5开发基于Kinect的体感游戏,其实工作原理很简单,由Kinect采集到玩家及环境数据

基于Oculus DK2和Kinect的3D体感游戏开发经验------关于上手Oculus DK2

在假期我和我的团队花了大约三个星期的时间完成了一款简单的3D体感游戏,用Oculus DK2(一个像头盔一样的东西,里面有屏幕)带来沉浸式的3D体验,利用Kinect来进行骨架追踪以便对玩家的动作做出反应,我的工作涉及Oculus这一部分下面简单的谈谈遇到的一些初期的小问题. 1.拿到设备后按说明安装好了设备却发现设备没反应? 首先你需要到官网注册开发者账号然后如果你是在Windows环境下的话就下载如下的文件安装即可,剩余的不安也行,浪费流量. 2.上面的东西安装成功后,再连接设备,点击隐藏图

多人交互与体感游戏开发相关技术说明

在淘宝开店过程中,经常有客户咨询多点交互与多人体感互动方面的知识,本人是it的门外汉,不是大家说的程序猿,但与相关硬件合作伙伴接触的比较多,对光学识别方面的了解有点时间,所以在果壳网这个地方留个记号,记录自己的一些了解也算分享给大家,希望能给大家的开发带来一些指引或者启发(涉及部分合作客户的利益,技术点过,希望有兴趣的深入研究). 多人互动目前采用的技术: 1.微软kinect,leapmotion为代表的硬件深度场景识别技术,通过官方提供的sdk包或开源驱动进行硬件识别数据的编程.目前利用比较

[体感游戏] 1、MPU6050数据采集传输与可视化

最近在研究体感游戏,到目前为止实现了基于51单片机的MPU6050数据采集.利用蓝牙模块将数据传输到上位机,并利用C#自制串口数据高速采集软件,并且将数据通过自制的折线图绘制模块可视化地展示出来等功能.本文将主要对实现这意见单系统中遇到的问题做一个小结——其中包括: 1.基于51的MPU6050模块通信简介(入门级) 2.陀螺仪数据采集与传输及帧格式介绍(小技巧) 3.基于C#的串口接收函数(C#基本知识) 4.多线程数据池解决高速串口实时性问题(难点) 5.折线图可视化模块(程序员基本功) 关

体感造成思想差异

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 36.0px "PingFang SC" } span.Apple-tab-span { white-space: pre } 4.以体感为主导感觉形成的个人思想 感觉不仅仅是大脑获取信息的基本来源,也是个人幸福或痛苦的决定因素.这一点在体感上表现得尤为明显,任何一种体感在产生的同时总是附带着幸福或痛苦体验.一个人的大部分知识经验都来自于体感,并且他所追求的幸福也是体感体验时,我们将这个人的思想

unity3d 赛车游戏——复位点检测

一直没有时间写博客 昨天我的CarWaypoints插件也告一段落了 今年没回家,过年就我一个人 挺无聊的,那就休息一天写几篇博客吧 我的代码可能很少,但是思路很重要 希望不懂的朋友别只copy代码 赛车游戏的话赛车难免会冲出跑道.掉入水坑.卡在障碍物上....等情况 那么问题来了,遇到这些情况怎么办呢? 玩家玩得好好的,难道就因为遇到这些情况要退出游戏重新进入吗? 那当然是不现实的,要是我的话果断卸载游戏 还要骂一句做游戏的人是脑残啊 我想你不希望玩家骂你是脑残吧,哈哈哈 新技能,赶快GET起

Houdini + TouchDesigner + leapmotion 分分钟做出钢铁侠的体感交互效果

接触touchdesigner已经有一段时间了,虽然教程确实非常有限而且很难找到深入的主题,但好在和houdini同根同源很多思路都是可以直接套用的,学习过程目前还没遇到特别难理解的问题. 今天我来讲一讲最近尝试的一个交互实验,目的是想了解touchdesigner到底有多灵活,结果很明显它的能力和Houdini形同手足.如果说Houdini是一个城府很深,每一步都要深思熟虑的老大哥的话,Touchdesigner则有点像一个事事都急于表现,任何精彩的点子都藏不住的小弟.一个是用时间精雕细琢,一

unity3d 赛车游戏——复位点检测优化、反向检测、圈数检测、赛道长度计算

接着上一篇文章说 因为代码简短且思路简单 所以我就把这几个功能汇总为一篇文章 因为我之前就是做游戏外挂的 经过验证核实,**飞车的复位点检测.圈数检测就是以下的方法实现的 至于反向检测和赛道长度计算,没去深入研究,不过应该也八九不离十 在告诉大家个小秘密: **飞车的复位点检测和圈数检测利用以下文章中的代码思路可以做出外挂 感兴趣的可以试试!我只是技术交流,不是传播外挂,别打我 复位点检测优化: 首先感谢 @太粗难进 他的原话: “不过 你知道 高架桥么?就是 如果大的轮船经过 会 把 桥 中间

[XMove-自主设计的体感解决方案] 系统综述

一 . XMOVE 系统简介       X-MOVE是作者于2010年本科四年级年启动的运动传感模拟,建模和计算的平台,已经发展到第四代.利用优秀算法和自主设计的硬件,充分发挥传感器能力,搭建起全新人机交互和动作传感解决方案,并努力实现产品级成熟度. 目前开发了以下应用: 全身动作捕捉和重现 对使命召唤(COD),街霸,HAWX等主流游戏的体感控制的支持 空中3D鼠标(包含动作识别) 手机屏幕实现电脑触摸板 虚拟现实和远程机械控制 电子指南针 传感器数据采集,分析和重现 其他应用 系统涉及以下