0

フレーム出力としてコンソール (cmd) で、2D semi_text ベースのゲームシーンをレンダリングしたい...

ゲームの世界を表現する単純なキャラクターの 2D 配列を印刷することでそれを実現しました。( "-" や "|" など)

しかし、各フレーム(=各ループ)で画面をクリアして、マトリックスを再描画したい。そして今、私は system("cls") を使用しています...しかし、遅すぎます! ここに私のレンダリング機能があります:

void Engine::engineRender()
{    
    system("cls");          
    // Render Background        
    for(int i=0; i<10 ; i++ )
    {       
        for ( int j=0 ; j<40 ; j++ )
        {           
            printf("%c",map[i][j]);             
            if((int)(player1->yPos)==i && (int)(player1->xPos)==j )
                printf("\b&");          

        }           
        printf("\n");           
    }
}

そして、私のメインゲームループはこれです:

 while(true)
    {
        _ftime(&cur);
        elapsMili += (cur.time - last.time)*1000 + (cur.millitm - last.millitm) ;

        if ( elapsMili >= 1000/frameRate ){
            elapsMili -= 1000/frameRate ;
            last=cur;
            needRender = true ;
        }
        engineUpdate();
        if (needRender){
            engineRender();
            needRender=false;
        }
    }

よりスムーズなレンダリングを行うためのアイデアはありますか?

4

1 に答える 1

0

この目的のためだけに作成した小さなライブラリを試すことができます(高速でスムーズなコンソール レンダリング)。使い方はかなり簡単です。ただし、Windowsでのみ機能します。

于 2012-08-10T08:13:34.820 に答える