フレーム出力としてコンソール (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;
}
}
よりスムーズなレンダリングを行うためのアイデアはありますか?