0

だから私は Python と PyGame でゲームを作りました。Intel の March Developer Challengeにゲームを提出することに興味があります。ただし、開発者の課題では、Intel の Atom Developer SDK ( http://appdeveloper.intel.com/en-us/sdk ) を使用する必要があります。この SDK には、C および C++ 用の API しかありません。

Python と PyGame は初めてで、C や C++ の経験はありません。私の質問は、(上記の最初のリンクが示唆するように) Python アプリケーションを使用して、または Python アプリケーションから、Intel の Atom SDK を何らかの形で実装することは可能でしょうか?

Python を C に埋め込む/拡張する方法について少し読んだことがありますが、何をどこに埋め込むべきか完全にはわかりません。つまり、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 がインストールされていない人のために、Python と Pygame へのすべての依存関係についてはどうすればよいでしょうか? 通常、Py2Exe は必要な依存関係を圧縮します (私は自分のゲームを exe/zip にパッケージ化することができました) が、C 内に埋め込むというコンテキストでは、どのように処理すればよいでしょうか? これで何とかpy2exeを使用できますか、それともCに埋め込むためにまったく別のことをする必要がありますか?

私のゲーム全体を C に埋め込もうとするよりも、Python を C 検証コードで拡張するルートに進む方がはるかに簡単なように思えますが、それはオプションではないと思います。 Visual Studio 2008 '.lib'" として、アプリケーションを Visual Studio でコンパイルする必要があることを意味します...?

どんな助け、考え、またはアイデアも大歓迎です!



上記の Intel サイトで完全な 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 に答える