Итак, я сделал игру на Python и PyGame. Теперь я хочу отправить игру в от Intel. Мартовский конкурс разработчиков. Однако задача разработчика требует использования пакета 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 Language 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;
}
Руководство разработчика SDK на 35 страницах: http://appdeveloper.intel.com/sites/files/pages/SDK%20Developer%20Guide.pdf