1

AndEngine/Box2D を使用して、Android OS でゲームを開発しています。ユーザーが画面に触れると、三角形の例を使用して三角形が作成されます。

private static Body createTriangleBody(final PhysicsWorld pPhysicsWorld, final IAreaShape pAreaShape, final BodyType pBodyType, final FixtureDef pFixtureDef) {
    /* Remember that the vertices are relative to the center-coordinates of the Shape. */
    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 top = -halfHeight;
    final float bottom = halfHeight;
    final float left = -halfHeight;
    final float centerX = 0;
    final float right = halfWidth;

    final Vector2[] vertices = {
            new Vector2(centerX, top),
            new Vector2(right, bottom),
            new Vector2(left, bottom)
    };

    return PhysicsFactory.createPolygonBody(pPhysicsWorld, pAreaShape, vertices, pBodyType, pFixtureDef);
}

ただし、三角形の近くのタッチは登録されていません (ログを使用して発見したように)。つまり、使用可能な三角形で画面がすぐにいっぱいになります。青は三角形、赤はタッチが登録されていない場所です。

ここに画像の説明を入力

タッチがこれらの境界内に登録されない理由はありますか?

別の図を次に示します。 ここに画像の説明を入力

そのため、このようなシーンになる可能性があります。ユーザーが長押しすると、三角形のサイズが大きくなります。ユーザーが指を離すと、三角形の成長が止まり、画面の下部に落ちます。元の三角形は赤い三角形とほぼ同じサイズですが、「X」でマークされた領域にはタッチが登録されていません。

4

1 に答える 1