控制台输入输出(移动字符)
单人
#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;
}

浙公网安备 33010602011771号