2010-03-26 5 views
0

Итак, я сделал игру в Python и PyGame. Теперь я заинтересован в отправке игры в Intel's March Developer Challenge. Однако задача разработчика требует использования Intel Atom Developer SDK (http://appdeveloper.intel.com/en-us/sdk), который имеет только API для C и C++.Можно использовать Python с Intel Atom Developer SDK (C/C++)?

Я новичок в Python и PyGame и не имею опыта работы на C или C++. Мой вопрос заключается в том, можно ли каким-то образом реализовать Intel Atom SDK через/с/из приложения Python (как показывает первая ссылка выше)?

Я прочитал немного о вложении/расширении 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, для людей, которые не имеют те, которые установлены на своих машинах? Обычно Py2Exe заботится о уплотнении требуемых зависимостей (мне удалось упаковать мою игру в exe/zip), но как мне позаботиться об этом в контексте внедрения в C? Могу ли я каким-то образом работать с py2exe на этом, или мне нужно сделать что-то совершенно другое для встраивания внутри C?

Похоже, было бы намного легче пройти маршрут распространения Python с кодом проверки C, вместо того, чтобы пытаться внедрить всю мою игру в C, но я думаю, что это не вариант, потому что библиотека предоставлена в настоящее время доступен только как Visual Studio 2008 «.lib», то есть приложение должно быть скомпилировано с помощью Visual Studio ...?

Любая помощь, мысли или идеи очень ценятся!



Вы можете найти в руководстве полном SDK для разработчиков на сайте интел выше, но вот их "Hello World" с использованием языка C API:

#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 Page SDK Руководство Разработчик: HTTP: // appdeveloper.intel.com/sites/files/pages/SDK%20Developer%20Guide.pdf

ответ

1

Не спускайтесь к голым C, если вы можете ему помочь. Записывать привязки с использованием Cython.

+0

Спасибо за подсказку Ignacio. –