0

所以我用 Python 和 PyGame 制作了一个游戏。现在我有兴趣将游戏提交给英特尔的三月开发者挑战赛。然而,开发者挑战需要使用英特尔的 Atom 开发者 SDK ( http://appdeveloper.intel.com/en-us/sdk ),它只有用于 C 和 C++ 的 API。

我是 Python 和 PyGame 的新手,没有 C 或 C++ 方面的经验。我的问题是,是否有可能通过/使用/从 Python 应用程序以某种方式实现英特尔的 Atom SDK(如上面的第一个链接所示)?

我已经阅读了一些关于在 C 中嵌入/扩展 Python 的内容,但我不完全确定要嵌入什么或在哪里嵌入。我的意思是,我知道我可以在 C 中做这样的事情:

#include <Python.h>

int
main(int argc, char *argv[])
{
  Py_Initialize();
  PyRun_SimpleString("from time import time,ctime\n"
                     "print 'Today is',ctime(time())\n");
  Py_Finalize();
  return 0;
}

但是对于那些没有在他们的机器上安装这些依赖的人,我该如何处理我对 Python 和 Pygame 的所有依赖呢?通常 Py2Exe 负责压缩所需的依赖项(我已经设法将我的游戏打包成一个 exe/zip),但是在嵌入 C 的上下文中我如何处理这些东西呢?我可以以某种方式与 py2exe 一起工作,还是我需要做一些完全不同的事情才能嵌入到 C 中?

似乎用 C 验证代码扩展 Python 的路线要容易得多,而不是试图将我的整个游戏嵌入到 C 中,但我认为这不是一个选择,“因为提供的库目前仅可用作为 Visual Studio 2008 '.lib'",这意味着应用程序必须使用 Visual Studio 编译...?

非常感谢任何帮助、想法或想法!



您可以在上面的英特尔网站上找到完整的 SDK 开发人员指南,但这里是他们使用 C 语言 API 的“Hello World”:

#include <stdio.h> 
#include “adpcore.h” 
int main( int argc, char* argv[] ) 
{ 
    ADP_RET_CODE ret_code; 
    const ADP_APPLICATIONID myApplicationID = {{ 
        0x12345678,0x11112222,0x33331234,0x567890ab}}; 

    if ((ret_code = ADP_Initialize()) != ADP_SUCCESS ){ 
        printf( “ERROR: exiting” ); 
        exit( -1 ); 
    } 
    if (( ret_code = ADP_IsAuthorized( myApplicationId )) == ADP_AUTHORIZED ) 
        printf( “Hello World” ); 
    else 
        printf( “Not authorized to run” ); 
    exit 0; 
}

35页SDK开发者指南:http://appdeveloper.intel.com/sites/files/pages/SDK%20Developer%20Guide.pdf

4

1 回答 1

1

如果你能帮上忙,请不要直接使用 C 语言。使用Cython编写绑定。

于 2010-03-26T08:03:15.207 回答