0

我想在控制台(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;
        }
    }

任何想法有更平滑的渲染?

4

1 回答 1

0

您可以尝试我为此目的制作的一个小库(快速平滑的控制台渲染)。使用起来应该非常简单。它只适用于 Windows。

于 2012-08-10T08:13:34.820 回答