0

私のプログラムが起動したら、背景に円を表示する必要があります。また、表示されているすべての円を制御する必要があります。私はその目的のためにclass VertexControllerandを使用します。私にはコンストラクタがありますclass VertexVertex

Vertex::Vertex(const ci::Vec2f & CurrentLoc){

    vColor = Color(Rand::randFloat(123.0f),Rand::randFloat(123.0f),Rand::randFloat(123.0f));
    vRadius = Rand::randFloat(23.0f);
    vLoc = CurrentLoc;
}

そしてVertexController私は持っています

VertexController::VertexController()
{
    Vertex CenterVertex = Vertex(getWindowCenter());
    CenterVertex.draw();  // function-member draw solid circle with random color
}

そしてsetup{}私が書いた方法で

void TutorialApp::setup(){
    gl::clear(Color(255,204,0));
    mVertexController=VertexController();
}

残念ながら、私の方法はうまくいきませんでした。背景しか見えません。では主な質問 - CINDER_APP_BASIC では、draw{}、update{}、setup{} でのみ直接描画が可能ですか? はいの場合は、解決策をアドバイスしてください。

4

1 に答える 1

1

このコード行は私には意味がありません:

mVertexController=VertexController();

とにかく、ウィンドウに円を描くためだけに draw() 関数を使用する必要があります。gl::clear(Color(0,0,0)); これが、デフォルトで背景をクリアし、新しいフレームの描画を最初から開始する理由です(これは、Cinder でデフォルトで使用される OpenGL での描画方法です)。

すべての円を格納するためにVectorコンテナーを使用することをお勧めします(この方法では、その場で円を追加および削除できます)。最初の円をVertexControllerコンストラクターに追加し、 VertexController::draw()for ループを使用してすべての円を描画する別の関数を作成します。

于 2014-04-02T13:21:55.760 に答える