2012-04-22 4 views
0

私はゲームを作っており、各タイマーティックで約40個のオブジェクトを再描画する必要があります。私は別のDraw(Picturebox^pictureBox)メソッドで約7つのクラスを持っています。ご覧のように、私はそれぞれのオブジェクト描画メソッドのためにpictureBoxポインタを渡します。オブジェクトが非常に多く、おそらくもう少しであるように、pictureBoxはオブジェクトの後に各オブジェクトを描画するので、ちらつきがあります。ちらつきを修正する簡単な方法はありますか?たぶん画像を準備してPictureBoxに表示するのでしょうか?Visual Studio fixピクチャボックスのちらつき(C++)

答えて

1

7署名がちらつきを作成することは非常に可能性があることを別のドロー(のPictureBox ^のPictureBox)メソッド

を持つクラス。ピクチャボックスに組み込まれたダブルバッファリングを利用するには、があり、Graphicsオブジェクトも渡す必要があります。あなたがPaintイベントから得たもの。おそらくCreateGraphics()を使用している可能性があります。これは深刻なちらつきのバグです。あなたがのPictureBoxとタイマー制御のためのイベントハンドラを追加したという仮定で

private: 
    void pictureBox1_Paint(Object^ sender, PaintEventArgs^ e) { 
     for each (GameObject^ obj in gameObjects) { 
      obj->Draw(e->Graphics); 
     } 
    } 

    void timer1_Tick(Object^sender, EventArgs^ e) { 
     updateGame();    // move stuff around 
     pictureBox1->Invalidate(); // redraw scene 
    } 

適切な署名は(グラフィックス^グラフィックス)を描画し、このように使用されます。

+0

ありがとうございました。私はこれを試してみる:) –