经过2.1和2.2两部分的准备,再经过一定的程序调整和增加,我们便能实现一款眼控小游戏的开发。下面进行集中叙述:
一、如何进行双平台联动?
1、什么叫双平台?为什么要进行信息沟通?
通过前两篇博客可以知道,我们的游戏部分是在Visual Studio中基于C++ / C语言开发的,而人脸检测与瞳孔检测是在Anaconda集成开发环境中基于python进行开发的,要想实现通过检测跟踪瞳孔位置来实现代替人手敲击键盘来控制游戏中飞机的移动,势必需要对瞳孔检测的位置结果反馈到游戏平台,因此不可避免地需要考虑两个平台或者说是两种编程语言如何融合统一起来的问题。
2、解决方案
这里给出两种方案
方案一:python与C++ / C混合编程
在网上搜索该类问题可以搜索到很多该类问题的解答博客,主要包括两个解决方向:
(1)C / C++中调用python
对于C / C++中调用python,可以通过引用Python.h头文件的方法进行调用,这里找了一篇参考博客:使用c语言调用python小结
(2)python中调用C / C++
python 对于python中调用C / C++,可以通过Ctypes、Swig、Boost、Cython等方法进行调用,这里也找了一篇利用Ctypes方法的参考博客: Python 与 C/C++ 交互的几种方式
混合编程方法虽然可行,但是主要适用于"函数型编程文件"。所谓"函数型编程文件"指的是当被调用的编程文件(.c、.cpp或者.py等)输出的是类似于编程函数,即有限次循环次数且无返回值或返回值有限。这样的好处是便于编程,即只需要在需要的地方直接运行编程文件,而不需要对编程文件的内容进行拆分。大家很容易想明白,相比于将现有的代码进行解构,直接在原有基础上进行代码的增加来实现功能的拓展,不论是难度还是耗时都是更少的。因此提出另外一种方法:
方案二:Socket通信
顾名思义&#x