我想在控制台(cmd)中渲染我的 2D semi_text-based 游戏场景作为我的帧输出......
我通过打印展示我的游戏世界的简单角色的 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;
}
}
任何想法有更平滑的渲染?