本篇介绍使用循环语句实现指定符号的坐标移动,使用到了while(1){}进行实时响应,if(表达式){},switch(表达式){},windows中封装的API并对API进行自行封装使用。
1.实现的功能
本例的程序实现了*可以在WASD的控制下做位置移动。

2.需要包含的头文件
因为这次课的内容需要
使用C标准库之外的一些函数(C的编译器中会包含标准的函数),因此,需要包含对应的
windows头文件。
- Windows.h:我们将使用其提供的函数,实现任意位置输出
- conio.h:我们将使用其中的函数,实现响应键盘按键
3.自行封装函数用于移动坐标
以下函数
封装了Windows的API,使得我们可以将光标移动到任意坐标位置,方便我们在任意位置打印字符。
GetStdHandle()和
SetConsoleCursorPosition()均为
windows中的
API
void MoveCursorTo(int nRow, int nCol)
{
COORD crdLocation;
crdLocation.X = nCol;
crdLocation.Y = nRow;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), crdLocation);
}
调用封装的函数,可以用于在画面中在任意位置打印标识
#include <windows.h>
#include <conio.h>
#include <stdio.h>
void SetConsoleCursorPosition(int nRow, int nCol)
{
COORD crdLocation;
crdLocation.X = nCol;
crdLocation.Y = nRow;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), crdLocation);
}
int main(int argc, char* argv

这篇博客介绍了如何使用C++和Windows API在控制台上创建一个简单的游戏,允许用户通过WASD键控制星号(*)的移动。通过封装Windows API函数MoveCursorTo来改变光标位置,结合while循环和switch语句实时响应键盘输入,实现字符在屏幕上的移动。程序代码详细展示了如何检测键盘事件,以及在不同位置打印和删除字符。
最低0.47元/天 解锁文章
4293

被折叠的 条评论
为什么被折叠?



