我想在控制台(cmd)中渲染我的基于2D半文本的游戏场景作为我的帧输出......
我是通过打印呈现我的游戏世界的简单角色的2D阵列来实现的。 (如“ - ”和“|”)
但每帧(=每个循环)我想清除屏幕重绘我的矩阵。 现在我使用系统(“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;
}
}
有什么想法让渲染更流畅吗?