自己理解的:
在做小遊戲貪喫蛇的時候,發現蛇的移動可以用清屏函數這個牛*的函數輕鬆完成,但是貪喫蛇用清屏函數做出的遊戲,遊戲的體驗感極差,因爲用清屏函數貪喫蛇的每走一步,圖面就必須從新在打一遍,等到蛇越來越大,走的越來越快的時候,那屏幕刷新的,無法直視。所以根本不能使用清屏函數來解決蛇的移動。
所以,就去查,才發現有個更牛*的光標函數,這個光標函數,是封裝好的,可以直接用,但在要加上#include<windows.h>這個頭文件,光標函數就是電腦屏幕上的那個光標的函數,它讓整個屏幕都變成一個用數組組成的一個座標系,可以直接傳給光標函數的參數,根據函數接受的實參,光標函數可以直接把光標移動到實參的座標的上,比清屏函數,效率大大提升,直接讓蛇的移動從連環畫進化的低級動畫片(就是隻用兩種顏色的簡單的貪喫蛇)。
代碼:(代碼的註釋是自己加的,自己翻譯的可能有點不對。)
/*** 光標定位 ***/
HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);//保持句柄 =獲取std句柄(標準輸出句柄)
COORD coord; // windows的一個結構體
void locate(int x,int y) //初始化座標
{
coord.X=y;
coord.Y=x;
SetConsoleCursorPosition(hout,coord); //設置控制檯光標的位置
};
/*** 隱藏光標 ***/
void hide()
{
CONSOLE_CURSOR_INFO cursor_info={1,0}; //遊標遊標信息遊標信息
SetConsoleCursorInfo(hout, &cursor_info); // 設置控制檯光標信息
}
by朱夏彤