Итак, я сделал игру на Python и PyGame. Теперь я заинтересован в том, чтобы представить игру на Intel's March Challenge . Однако задача разработчика требует использования Intel Atom Developer SDK (http://appdeveloper.intel.com/en-us/sdk),, который имеет API только для 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 на сайте Intel выше, но вот их «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