我正在尝试在我的新Android应用程序中使用SDL2,它应该运行良好:
http://wilbefast.com/2011/11/11/recent-sdl-android-goodies/
它编译没有一个问题,并且有一个示例项目,因此很容易开始使用它。我编译了库并从我的应用程序开始,创建了一个事件循环 - 就像在SDL 1.2中一样,并尝试通过函数将一些事件推入其中:
int SDL_PushEvent(SDL_Event * event);
但是,它始终失败,错误值为-1。我刚为这个源文件定义了SDL_main函数:
http://hg.libsdl.org/SDL/file/6bb657898f55/src/main/android/SDL_android_main.cpp
我的SDL_main函数包含简单的事件循环:
SDL_Event event;
for (;;)
{
SDL_WaitEvent(&event);
switch (event.type)
{
case SDL_QUIT:
return;
case SOME_EVENT:
break;
default:
break;
}
}
就是这样,没有线程,没有互斥,没有等待,只是一个简单的主要功能。我注意到我的事件循环处理了一些事件,它们的event.type等于2151293988,它的源代码是SDLSurface实例,它是在Java代码中创建的:http://hg.libsdl.org/SDL/file/6bb657898f55/android-project/src/org/libsdl/app/SDLActivity.java
为什么SDL_PushEvent
功能不起作用?有谁知道什么可能是错的?
答案 0 :(得分:3)
初始化后SDL队列不会自动启动,必须通过调用SDL_StartEventLoop();