控制台输入输出(移动字符)

单人

#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;
}

  

 

posted @ 2024-04-13 15:09  王ys  阅读(7)  评论(0编辑  收藏  举报