在 Unity 和 Cocos2d 引擎中,通常通过嵌入 Lua 脚本来驱动游戏逻辑与内容。本文尝试用 C/C++ 嵌入式 Python 脚本达到同样的效果,具体方案可参考 boost::python 和 Python C-API 两种实现。
环境准备
- 安装 python 2.7 x64、boost 1.6.0,使用 VS2015 构建,确保 python 动态库能够正确加载。
- 新建 python 脚本
1.py,内容如下:print("Hello, World!")
C++ 代码示例
引入 boost.python 库,编写以下 C++ 代码:
#include "boost/python.hpp"
int main(int argc, char* argv[])
{
using namespace boost::python::api;
using namespace boost::python;
Py_Initialize();
boost::python::exec_file("1.py");
system("pause");
return 0;
}
按 F5 运行,效果如下:
注意:这里不是标准嵌入式方案,仍然需要在本机安装好 python 动态库才能运行。
官方标准嵌入式文档:https://www.boost.org/doc/libs/1_65_1/libs/python/doc/html/tutorial/tutorial/embedding.html