2017-10-19 8 views
1

Je suis un étudiant qui essaie de réaliser un projet.Comment faire un mouvement en douceur le long de l'axe horizontal dans une fenêtre CMD

J'ai créé une matrice 500 * 500 et mon caractère "■" est au milieu de l'écran. La carte visuelle sur la fenêtre CMD n'est pas possible d'afficher tout le tableau 500 * 500 de sorte qu'il s'étend le long de l'axe vertical permettant de faire défiler. Le tableau est placé dans une boucle et reçoit les commandes de touches fléchées qui contrôlent le caractère "■". Récemment, je trouve un code qui peut se déplacer le caractère sans avoir à imprimer le tableau entier:

int gotoxy(int x, int y) 
{ 
COORD Cur; 
Cur.X=x; 
Cur.Y=y; 
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Cur); 
} 

Mais cela ne suffit pas pour créer un mouvement horizontal lisse et encore moins l'extension de la carte à gauche et à droite. L'impression de la taille souhaitée du tableau à chaque fois le fait bégayer. Donc je veux savoir s'il y a un moyen de déplacer mon personnage en douceur sur une carte de taille libre.

+0

Oui, il y a ... mais ce n'est pas un endroit pour les tutoriels. S'il vous plaît voir: [aide/sur le sujet] –

+1

Si par "lisse" vous voulez dire que vous voulez déplacer le personnage pixel par pixel, alors ce n'est pas possible. Dans votre cas, les "pixels" sont des positions de caractères. –

+0

Ouais, euh, vous avez raison d'être désolé d'être peu clair – WaterDragonFly

Répondre

0

Il ya quelque temps, j'ai fait un jeu Pong en cmd. Mettre à jour le champ entier chaque image était incroyablement laggy en utilisant cout. Nous utilisons enfin la librairie Windows.h - comme vous le faites - et en utilisant la fonction WriteConsoleOutput, le lag était parti même en mettant à jour toute la scène.