I`m versucht, eine polygonale Physik Körper durch einen solchen Code zu erzeugen:merkwürdige Fehler beim Erstellen der Physik Körper in AndEngine
final float halfWidth = pAreaShape.getWidthScaled() * 0.5f/PIXEL_TO_METER_RATIO_DEFAULT;
final float halfHeight = pAreaShape.getHeightScaled() * 0.5f/PIXEL_TO_METER_RATIO_DEFAULT;
final float centerX = 0;
final float left = -halfWidth;
final float right = halfWidth;
final float top = -halfHeight + 9f/PIXEL_TO_METER_RATIO_DEFAULT;
final float bottom = halfHeight;
final PolygonShape shape1 = new PolygonShape();
final Vector2[] vertices = {
new Vector2(centerX, bottom),
new Vector2(left+8f/PIXEL_TO_METER_RATIO_DEFAULT, bottom-19f/PIXEL_TO_METER_RATIO_DEFAULT),
new Vector2(left+7f/PIXEL_TO_METER_RATIO_DEFAULT, bottom-23f/PIXEL_TO_METER_RATIO_DEFAULT),
new Vector2(left+10f/PIXEL_TO_METER_RATIO_DEFAULT, top+14f/PIXEL_TO_METER_RATIO_DEFAULT),
new Vector2(left+13f/PIXEL_TO_METER_RATIO_DEFAULT, top+8f/PIXEL_TO_METER_RATIO_DEFAULT),
new Vector2(right-14f/PIXEL_TO_METER_RATIO_DEFAULT, top+8f/PIXEL_TO_METER_RATIO_DEFAULT),
new Vector2(right-11f/PIXEL_TO_METER_RATIO_DEFAULT, top+14f/PIXEL_TO_METER_RATIO_DEFAULT),
new Vector2(right-9f/PIXEL_TO_METER_RATIO_DEFAULT, bottom-23f/PIXEL_TO_METER_RATIO_DEFAULT),
new Vector2(right-10f/PIXEL_TO_METER_RATIO_DEFAULT, bottom-19f/PIXEL_TO_METER_RATIO_DEFAULT)
};
Body body = PhysicsFactory.createPolygonBody(pPhysicsWorld, pAreaShape, vertices, pBodyType, pFixtureDef);
Variable Vertices enthält Eckpunkte dieser Form.
Und es funktioniert nicht - Anwendungen startet (zeigt schwarzen Bildschirm und Anwendungen Titelleiste), als es ohne Fehler abgebrochen wird (es gibt keinen Absturzdialog und keine Fehler in LogCat).
ABER wenn ich eines der Elemente der Vertices-Array löschen, funktioniert es gut.
Was mache ich falsch?
ja, du hast Recht. Aber ich frage mich immer noch, warum die Anwendung abstürzt, ohne einen Fehlerbericht zu haben. Danke trotzdem – Ashot
möglich, weil es durch Assertion fehlgeschlagen ist, was normalerweise den Prozess abstürzt. Wenn Assertionen für den nativen Build nicht aktiviert waren, wäre der Zugriff wahrscheinlich durch den ungültigen Speicherort fehlgeschlagen. Im Grunde war es wahrscheinlich ein harter Unfall –