0

ゲーム エンジンのバグを修正するのに少し苦労しています。

私の問題は、シーン内でカメラを動かしているときに、hud の要素が揺れているのが見えることです。バグは、カメラを指でスライドさせたときにのみ表示されます。updateメソッドで位置を変更すると、すべて問題ないようです。

Render メソッド (メイン アクティビティの onDrawFrame() から呼び出されます):

public void drawScene(GL10 gl)
{
    // Clear scene
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
    // Move left top corner of camera to specified point
    gl.glTranslatef(-camera.getX(), screenManager.getScreenHeight() - camera.getY(), 0f);
    // Render all objects from the scene
    root.renderObjects(gl);
    // Fixed position for HUD elements
    gl.glTranslatef(camera.getX(), -screenManager.getScreenHeight() + camera.getY(), 0.0f);
    // Render hud to the screen
    hud.renderObjects(gl);
    // Get back to camera position
    gl.glTranslatef(-camera.getX(), screenManager.getScreenHeight() - camera.getY(), 0.0f);
    // Reset the matrix
    gl.glLoadIdentity();
}

移動方法 (メイン アクティビティの onTouchEvent から呼び出されます):

public void onPointerMove(TouchPointer pointer, TouchPointer historicalPointer)
{
    Point p = new Point(pointer.getRawTouchPoint());
    p.subtract(historicalPointer.getRawTouchPoint());
    camera.moveBy(p);
}

これが重要なコードだと思います。しかし、私が変えることができるものは何も見えません。誰かが何か考えを持っているなら、共有してください;)

4

1 に答える 1