我一直在寻找能够很好地与Android配合使用的物理引擎,但我只是感到很失望.
在性能方面,我听说jbox2d是最好的选择,但是(根据我的理解)自从Android SDK V1.0以来,Dalvik VM的验证器变得非常严格并且拒绝了一些关键类并且拒绝运行.使用dx工具后,此问题仍然存在(尽管我可能不正确地使用该工具).
我知道AndroidBox2D移植项目的存在是为了优化Android垃圾收集器的jbox2d,但项目页面没有任何下载,gpl许可证没有原始版本的zlib许可证那么吸引人.
有没有人有任何提示让jbox2d在Eclipse中工作,或者有任何建议我应该从哪里开始寻找?
我正在编写一个DLL,它被另一个应用程序用作插件,并希望利用Qt的能力.
我已经设置,编译和运行所有类,但没有发出任何信号.所以似乎没有QEventLoop.
尝试1:
我将我的主类修改为子类QThread而不是QObject,并在run()中创建一个QEventLoop,连接所有信号/槽,并执行该线程.
但它没有说没有QApplication就没有QEventLoop.
尝试2:
我修改了主类(仍然继承了QThraed)而不是实例化QCoreApplication,连接所有信号/槽,然后执行应用程序.
警告说QApplication不是在main()线程中创建的,仍然不会发出信号.
我不确定该怎么做.我显然无法在将使用我的插件的应用程序中创建QCoreApplication,并且我无法在没有插件的情况下发出信号.
我已经包含了一个简单的(并且可怕写的)测试应用程序,它应该说明我的问题:
任何帮助,将不胜感激!
main.cpp中:
#include <iostream>
#include "ThreadThing.h"
using namespace std;
int main(int argc, char *argv[])
{
cout << "Main: " << 1 << endl;
ThreadThing thing1;
cout << "Main: " << 2 << endl;
thing1.testStart();
cout << "Main: " << 3 << endl;
thing1.testEnd();
cout << "Main: " << 4 << endl;
thing1.wait(-1);
cout << "Main: " << 5 << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
ThreadThing.h:
#ifndef THREADTHING_H
#define THREADTHING_H
#include <QThread> …Run Code Online (Sandbox Code Playgroud)