java - Box2d 与 AndEngine 异常创建固定装置

标签 java android box2d andengine

我将 AndEngine 与 Box2d 扩展一起使用,当我的游戏加载 map 时,有时会崩溃(是的,只是有时。对我来说,它看起来很随机),轨迹如下所示:

#00 pc 00014480 /data/app-lib/com.sergio.game-2/libandenginephysicsbox2dextension.so (b2Body::CreateFixture(b2FixtureDef const*)+8)
#01 pc 0000c408 /data/app-lib/com.sergio.game-2/libandenginephysicsbox2dextension.so (Java_com_badlogic_gdx_physics_box2d_Body_jniCreateFixture__JJFFFZSSS+112)
#02 pc 0001dbcc /system/lib/libdvm.so (dvmPlatformInvoke+112)
#03 pc 0004e123 /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
#04 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted)

它不会告诉我到底哪里崩溃了,我也不知道该看哪里。我像往常一样创建主体和固定装置:

FixtureDef wallfixture = PhysicsFactory.createFixtureDef(0, 0, 0.2f);
wallfixture.filter.categoryBits = CATEGORY_WALL;
wallfixture.filter.maskBits = MASK_WALL;
final Body theBody = PhysicsFactory.createBoxBody(mPhysicsWorld, greenRectangle, BodyType.StaticBody, wallfixture);

有什么想法吗?

最佳答案

根据我的经验,box2d 中的装置经常出现几个问题:

  1. 绕行顺序无效;
  2. 非凸多边形;
  3. 形状尺寸太小。当几个点之间的距离太短时,box2d 会假设它们是一个点。这就是为什么 box2d 可以将三角形解释为一条线,例如,这是 Not Acceptable (多边形必须至少有 3 个点)。

检查您的所有灯具是否始终符合这些规则。看起来您正在随机生成灯具,并且有时某些灯具在所描述的含义中变得无效。

关于java - Box2d 与 AndEngine 异常创建固定装置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26740086/

相关文章:

java - 为什么 Kotlin map-filter-reduce 在大输入上比 Java Stream 操作慢?

java - 在等待线程完成时更新 Swing GUI

android - 由于窗口没有焦点而丢弃事件

android - 在没有单选按钮的 Jetpack Compose 中创建切换按钮组

java - 如何获取每个子弹的起点? Libgdx 简单游戏

xcode - 在Xcode中编译Box2D,构建目录问题

java - 如何在 Rhino 中获取当前脚本名称和行号?

java - AWS RDS 连接数据库错误 : com. mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

python - Gym's box 2d (openAI) 安装不成功(pip错误)

swift - Box2D:继续模拟 body ,同时忽略来自特定 body 的力