控制台输入输出(移动字符)
单人
#include<iostream> #include<windows.h> #include<conio.h>//控制台输入输出头文件 using namespace std; int main(){ HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出的句柄 COORD coord={0,0};//保存光标坐标 SetConsoleCursorPosition(handle,coord); cout<<"→"; while(1){ if(kbhit()){ SetConsoleCursorPosition(handle,coord); cout<<" "; int key=getch(); switch(key){ case 72: coord.Y--;break; case 75: coord.X--;break; case 77: coord.X++;break; case 80: coord.Y++;break; default: break; } SetConsoleCursorPosition(handle,coord); cout<<"→"; } } return 0; }
双人
#include<iostream> #include<windows.h> #include<conio.h>//控制台输入输出头文件 using namespace std; int main(){ HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出的句柄 COORD coord1={0,0};//保存光标坐标 COORD coord2={0,1}; SetConsoleCursorPosition(handle,coord1); cout<<"11"; SetConsoleCursorPosition(handle,coord2); cout<<"22"; while(1){ if(kbhit()){ int key=getch(); if(key==72||key==75||key==77||key==80){ SetConsoleCursorPosition(handle,coord1); cout<<" "; } if(key==83||key==65||key==68||key==87){ SetConsoleCursorPosition(handle,coord2); cout<<" "; } switch(key){ case 72: coord1.Y--;break; case 75: coord1.X--;break; case 77: coord1.X++;break; case 80: coord1.Y++;break; case 87: coord2.Y--;break; case 65: coord2.X--;break; case 68: coord2.X++;break; case 83: coord2.Y++;break; default: break; } SetConsoleCursorPosition(handle,coord1); cout<<"11"; SetConsoleCursorPosition(handle,coord2); cout<<"22"; } } return 0; }
两行一个整体
#include<iostream> #include<windows.h> #include<conio.h>//控制台输入输出头文件 using namespace std; int main(){ HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出的句柄 COORD coord1={0,0};//保存光标坐标 COORD coord2={0,1}; SetConsoleCursorPosition(handle,coord1); cout<<"11"; SetConsoleCursorPosition(handle,coord2); cout<<"22"; while(1){ if(kbhit()){ int key=getch(); SetConsoleCursorPosition(handle,coord1); cout<<" "; SetConsoleCursorPosition(handle,coord2); cout<<" "; switch(key){ case 72: coord1.Y--;coord2.Y--;break; case 75: coord1.X--;coord2.X--;break; case 77: coord1.X++;coord2.X++;break; case 80: coord1.Y++;coord2.Y++;break; default: break; } SetConsoleCursorPosition(handle,coord1); cout<<"11"; SetConsoleCursorPosition(handle,coord2); cout<<"22"; } } return 0; }
子弹发射
#include<iostream> #include<windows.h> #include<conio.h>//控制台输入输出头文件 using namespace std; int main(){ cout<<"方向键移动,wasd发射"; HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出的句柄 COORD coord1={10,2};//保存光标坐标 COORD coord2={10,2}; SetConsoleCursorPosition(handle,coord1); cout<<"www"; SetConsoleCursorPosition(handle,coord2); cout<<""; while(1){ if(kbhit()){ int key=getch(); SetConsoleCursorPosition(handle,coord1); cout<<" "; SetConsoleCursorPosition(handle,coord2); switch(key){ case 72: coord1.Y--;coord2.Y--;break; case 75: coord1.X--;coord2.X--;break; case 77: coord1.X++;coord2.X++;break; case 80: coord1.Y++;coord2.Y++;break; case 119:{ coord2.Y--; while(coord2.Y>0){ SetConsoleCursorPosition(handle,coord1); cout<<"www"; Sleep(50); SetConsoleCursorPosition(handle,coord2); cout<<" "; coord2.Y--; SetConsoleCursorPosition(handle,coord2); cout<<" H"; SetConsoleCursorPosition(handle,coord2); } SetConsoleCursorPosition(handle,coord2); cout<<" "; coord2={coord1.X,coord1.Y}; break;} case 115:{ coord2.Y++; while(coord2.Y<30){ SetConsoleCursorPosition(handle,coord1); cout<<"www"; Sleep(50); SetConsoleCursorPosition(handle,coord2); cout<<" "; coord2.Y++; SetConsoleCursorPosition(handle,coord2); cout<<" H"; SetConsoleCursorPosition(handle,coord2); } SetConsoleCursorPosition(handle,coord2); cout<<" "; coord2={coord1.X,coord1.Y}; break;} case 97:{ coord2.X--; while(coord2.X>0){ SetConsoleCursorPosition(handle,coord1); cout<<"www"; Sleep(50); SetConsoleCursorPosition(handle,coord2); cout<<" "; coord2.X--; SetConsoleCursorPosition(handle,coord2); cout<<"H"; SetConsoleCursorPosition(handle,coord2); } SetConsoleCursorPosition(handle,coord2); cout<<" "; coord2={coord1.X,coord1.Y}; break;} case 100:{ coord2.X++; while(coord2.X<40){ SetConsoleCursorPosition(handle,coord1); cout<<"www"; Sleep(50); SetConsoleCursorPosition(handle,coord2); cout<<" "; coord2.X++; SetConsoleCursorPosition(handle,coord2); cout<<"H"; SetConsoleCursorPosition(handle,coord2); } SetConsoleCursorPosition(handle,coord2); cout<<" "; coord2={coord1.X,coord1.Y}; break;} default: break; } SetConsoleCursorPosition(handle,coord1); cout<<"www"; } } return 0; }