0

Camera クラスのコンストラクターに問題があります。コンストラクターで初期化する変数がたくさんあり、それらすべてに私の代わりにいくつかのガーバード値が割り当てられています。どこに問題があるのでしょうか? printf("%d", yawSensitivity)出力例-1610612736

できるだけ少ないコードを貼り付けようとしました。コンセプトの誤りを見つけて、正しい方向に向けてくれるかもしれません...

Camera.h

class Camera
{
    protected:

        int windowMidX;
        int windowMidY;

        float pitchSensitivity; 
        float yawSensitivity; 

    public:

        Camera(int windowWidth, int windowHeight);
        ~Camera();
};

カメラ.cpp

Camera::Camera(int windowWidth, int windowHeight)
{
    this->windowMidX = windowWidth  / 2;
    this->windowMidY = windowHeight / 2;

    this->pitchSensitivity = 0.1f; 
    this->yawSensitivity   = 0.1f;
}
Camera::~Camera() {}

カメラの初期化

Camera *cam = new Camera(WIN_WIDTH, WIN_HEIGHT);
4

1 に答える 1

3

例えばprintf("%d", yawSensitivity)

あなたのコードは未定義の動作を示します。yawSensitivityタイプfloatです。%dフォーマット指定子は type のパラメータを期待していますint%f代わりに使用してください。

于 2013-10-31T00:32:16.403 に答える