Я хочу сделать мой 2D semi_text на основе сцены игры, в консоли (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;
}
}
любая идея, что более гладкой рендеринга?
Вы должны вставить свой код, чтобы получить лучшую помощь. – ControlAltDel
Возможно, попробуйте не очищать экран каждый раз, а обновлять те символы, которые были изменены после рисования предыдущего кадра и должны быть нарисованы по-разному в текущем. –