如何在控制台中顺利地绘制我简单的2D游戏世界?

时间:2012-06-22 20:00:29

标签: cmd paint smooth 2d-games

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

有什么想法让渲染更流畅吗?

1 个答案:

答案 0 :(得分:0)

你可以尝试a little library我为此目的而做的(快速平滑的控制台渲染)。它应该非常简单易用。它只适用于Windows。