- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
1.19209289550781250000e-7F"断言-6ren"> 1.19209289550781250000e-7F"断言-我正在制作一款游戏,其中地板是随机生成的非凸多边形。 多边形的顶点被传递给以下(伪代码)方法: private void createPolygon (FloatArray vertices) { -6ren">
我正在制作一款游戏,其中地板是随机生成的非凸多边形。
多边形的顶点被传递给以下(伪代码)方法:
private void createPolygon (FloatArray vertices) {
short[] triangleIndices = new EarClippingTriangulator()
.computeTriangles(vertices)
.items;
myPolygon = new PolygonSprite(
new PolygonRegion(textureRegion, vertices.items, triangleIndices));
// myPolygon is correctly rendered
// now I want to create a Box2D static body with this shape
PolygonShape myShape = new PolygonShape();
Array<Vector2> vect = toVector2Array(vertices);
for (int i = 0; i < triangleIndices.length / 3; i++) {
// Error!
myShape.set(new float[] {
vect.get(triangleIndices[3 * i + 0]).x,
vect.get(triangleIndices[3 * i + 0]).y,
vect.get(triangleIndices[3 * i + 1]).x,
vect.get(triangleIndices[3 * i + 1]).y,
vect.get(triangleIndices[3 * i + 2]).x,
vect.get(triangleIndices[3 * i + 2]).y });
myBody.createFixture(myShape, 0);
}
}
通常该方法运行良好,但有时游戏会崩溃:
AL lib: (EE) alc_cleanup: 1 device not closed
Assertion failed!
Program: C:\Program Files\Java\jre1.8.0_25\bin\javaw.exe
File: /var/lib/jenkins/workspace/libgdx/extensions/gdx-box2d/gdx-box2d/jni/Box2D/Collision/Shapes/b2PolygonShape.cpp, Line 158 or 223Expression: false
或
Expression: area > 1.19209289550781250000e-7F
传递给“myShape.set()”的float[]包含(当它崩溃时):
- x1: -1061.4121;
- y1: -2178.179;
- x2: 888.95154;
- y2: -154.1218;
- x3: 888.98663;
- y3: -154.08865;
如果我没理解错的话,这是因为三角形太小了。我该怎么做才能避免这个问题,或者忽略这些小三角形?提前致谢
最佳答案
第 2 点和第 3 点非常接近,这可能是图书馆不喜欢的地方。
也许,您可以改进您的随机点生成器以避免两个点太靠近。
关于java - PolygonShape 用 "area > 1.19209289550781250000e-7F"断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28567215/
我在使用 PolygonShape 对象 box2D 时遇到一些问题。我有 8 个顶点绘制代码: float scaleW = width/12; float scaleH = height/2; c
我在 Java 中使用 Box2D 和 LIBGDX。我正在尝试使用PolygonShape创建一个三角形。调用 setVertices 后,我的代码崩溃了。没有错误代码或堆栈跟踪供我跟踪。 请原谅冗
我使用 libGDX。当我尝试在 Box2D 中创建具有多边形形状的夹具时,出现以下错误: java: ./Box2D/Collision/b2Distance.h:103: const b2Vec2
我想从PolygonShape创建一个圆,这样我就可以旋转圆(据我所知,你不能旋转CircleShape)。 有人对生成顶点有一些见解吗?谢谢! 最佳答案 使用PolygonShape中的半径怎么样?
我在 android studio 中有一个使用 gradle 的 LibGDX 项目。它在今天早上之前运行良好,但由于 LibGDX 的更改,现在 box2d 扩展无法正常工作。 我想我已经像这样做
我正在制作一款游戏,其中地板是随机生成的非凸多边形。 多边形的顶点被传递给以下(伪代码)方法: private void createPolygon (FloatArray vertices) {
我在这里遇到了一些问题。 我一直在尝试使用 Libgdx 和内置的 Box2d 类创建多边形。我的代码如下。我在数组中创建 8 个 vector 并绘制对象。多边形形状从世界坐标的 (82,0) 开始
由于某种原因,我的 Box2d 对象代码在一个类中工作,但在另一个类中不起作用,即使它与我读过的代码完全相同,它与导入正确的库有关,但该库已正确导入,但但它仍然不起作用。我有点绝望,不知道该怎么办,说
我是一名优秀的程序员,十分优秀!