新:头文件 youxi.h

嗨,我是脏脏包!

今天我给大家带来了新·头文件:youxi.h

安装方法大家知道

我做的一些新游戏和改进''基本"需要这个头文件。

大家平时做游戏是也可以用!

目录

1.颜色函数:

1.

2.

3.

2.无闪清屏:

3.其他

1.间隔输出:

2.keydown:

3.隐藏光标

4.移除*****模式:

全部代码:


1.颜色函数:

其实这个头文件就是大量函数拼凑到一起的

1.

void yanse(int ForgC, int BackC)//SetColorAndBackground函数(颜色函数) 
{
	WORD wColor=((BackC & 0x0F)<<4)+(ForgC & 0x0F);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
	return ; 
}

2.

void color(int a)
{
/*亮白*/              if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
/*蓝色*/              if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
/*绿色*/              if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
/*紫色*/              if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
/*红色*/              if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
/*黄色*/              if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
/*深蓝色*/            if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
/*土黄色or金黄色*/    if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);
/*灰色接近白*/        if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
}

3.

void BackGround(unsigned int ForeColor=7,unsigned int BackGroundColor=0) //颜色函数 
{
    HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);  
    SetConsoleTextAttribute(handle,ForeColor+BackGroundColor*0x10);
}

2.无闪清屏:

众所周知:system("cls")是好用

但是······

所以:更好用的gotoxy脱颖而出:

void gotoxy(int x, int y)//覆盖清屏 
{
	COORD pos = {x,y};
	HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hOut, pos);
	return ;
}

使用时,引用gotoxy(0,0);就能清屏。

3.其他

譬如:

1.间隔输出:

void print(string s,int x)
{
	int Len=s.length();
	for(int i=0;i<Len;i++)
	{
		cout<<s[i];
		Sleep(x);
	}
	cout<<"\n";
}

2.keydown:

void key_down()//
{
	#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
	return ;
	//使用方法如:if(KEY_DOWN(VK_LBUTTON)) //如果鼠标左键按下 
/*
常量名				   对应按键
————————————————————————
VK_LBUTTON             鼠标左键
VK_RBUTTON             鼠标右键
VK_CANCEL              Ctrl+Break
VK_MBUTTON             鼠标中键
VK_BACK                Backspace键
VK_TAB                 Tab 键
VK_RETURN              回车键
VK_SHIFT               Shift键
VK_CONTROL             Ctrl键
VK_MENU                Alt键
VK_PAUSE               Pause键
VK_CAPITAL             Caps Lock键
VK_ESCAPE              Esc键
VK_SPACE               空格键
VK_PRIOR               Page Up键
VK_NEXT                Page Down键
VK_END                 End键
VK_HOME                Home键
VK_LEFT                左箭头键
VK_UP                  上箭头键
VK_RIGHT               右箭头键
VK_DOWN                下箭头键
VK_SNAPSHOT            Print Screen键
VK_Insert              Insert键
VK_Delete              Delete键
'0' – '9'             数字0-9
'A' – 'Z'             字母A - Z
VK_LWIN                左WinKey(104键盘才有)
VK_RWIN                右WinKey(104键盘才有)
VK_APPS                AppsKey(104键盘才有)
VK_NUMPAD0             小键盘0键
VK_NUMPAD1             小键盘1键
VK_NUMPAD2             小键盘2键
VK_NUMPAD3             小键盘3键
VK_NUMPAD4             小键盘4键
VK_NUMPAD5             小键盘5键
VK_NUMPAD6             小键盘6键
VK_NUMPAD7             小键盘7键
VK_NUMPAD8             小键盘8键
VK_NUMPAD9             小键盘9键
VK_F1 - VK_F24         功能键F1–F24
VK_NUMLOCK             Num Lock键
VK_SCROLL              Scroll Lock键
*/
}

3.隐藏光标

void HideCursor()//隐藏光标
{
	CONSOLE_CURSOR_INFO cur={1,0};
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cur);
}

4.移除*****模式:

void noedit()
{
	HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
	DWORD mode;
	GetConsoleMode(hStdin, &mode);
	mode &= ~ENABLE_QUICK_EDIT_MODE;  //移除快速编辑模式
	mode &= ~ENABLE_INSERT_MODE;      //移除插入模式
	mode &= ~ENABLE_MOUSE_INPUT;
	SetConsoleMode(hStdin, mode);
}

还有很多。

最终,杂糅到一起

这个头文件就做好了······

全部代码:

#include<time.h>
#include<cstdio>
#include<conio.h>
#include<iostream>
#include<algorithm>
#include<windows.h>
#include<bits/stdc++.h>
using namespace std;

#ifndef HACKER_H_
#define HACKER_H_

#define ll long long

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")

//结构体与类提前声明
struct hl//行列
{
	ll h, l;
};

void js();
void noedit();
void yd(ll ,ll );
void color(int );
void HideCursor();
hl sbwz(bool ,bool );
void yanse(int ,int );
void gotoxy(int ,int );
void gs(ll ,ll ,string );
void print(string ,int );
void BG(unsigned int ,unsigned int );

struct cdhs//存档结构体
{
	void out(int n, string name);
	void out(ll n, string name);
	void out(bool n, string name);
	void out(char n, string name);
	void out(string n, string name);
	void in(int& n, string name);
	void in(ll& n, string name);
	void in(bool& n, string name);
	void in(char& n, string name);
	void in(string& n, string name);
};
	
void js()
{
	system("cls");
	cout << "库名:youxi.h\n";
	cout << "类型:拓展库\n";
	cout << "版本号:2.0\n";
	return;
}
	
void gs(ll h, ll l, string z)//格式
{
	for (ll i = 1; i <= h; i++)
		cout << "\n";
	for (ll i = 1; i <= l; i++)
		cout << " ";
	cout << z;
	return;
}
	
hl sbwz(bool x = 1, bool n = 1)//鼠标位置
{
	HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
	HWND h = GetForegroundWindow();
	CONSOLE_FONT_INFO consoleCurrentFont;
	hl hl;
	POINT p;
	if (x)
	{
		GetCursorPos(&p);
		ScreenToClient(h, &p);
	}
	else
	{
		GetCursorPos(&p);
	}
	if (n)
	{
		GetCurrentConsoleFont(hOutput, FALSE, &consoleCurrentFont);
		p.x /= consoleCurrentFont.dwFontSize.X;
		p.y /= consoleCurrentFont.dwFontSize.Y;
	}
	hl.h = p.y + 1;
	hl.l = p.x + 1;
	return hl;
}


void yd(ll h, ll l)//移动光标
{
	COORD pos = { l - 1,h - 1 };
	HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hOut, pos);
	return;
}

void BG(unsigned int ForeColor=7,unsigned int BackGroundColor=0) //颜色函数 
{
    HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);  
    SetConsoleTextAttribute(handle,ForeColor+BackGroundColor*0x10);
}
	
void gotoxy(int x, int y)//覆盖清屏 
{
	COORD pos = {x,y};
	HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hOut, pos);
	return ;
}

void print(string s,int x)
{
	int Len=s.length();
	for(int i=0;i<Len;i++)
	{
		cout<<s[i];
		Sleep(x);
	}
	cout<<"\n";
}
	
void color(int a)
{
/*亮白*/              if(a==0) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
/*蓝色*/              if(a==1) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN|FOREGROUND_BLUE);
/*绿色*/              if(a==2) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_GREEN);
/*紫色*/              if(a==3) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_BLUE);
/*红色*/              if(a==4) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
/*黄色*/              if(a==5) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN);
/*深蓝色*/            if(a==6) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_BLUE);
/*土黄色or金黄色*/    if(a==7) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN);
/*灰色接近白*/        if(a==8) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
}
	
void key_down()//
{
	#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
	return ;
	//使用方法如:if(KEY_DOWN(VK_LBUTTON)) //如果鼠标左键按下 
	/*
	常量名				   对应按键
	————————————————————————
	VK_LBUTTON             鼠标左键
	VK_RBUTTON             鼠标右键
	VK_CANCEL              Ctrl+Break
	VK_MBUTTON             鼠标中键
	VK_BACK                Backspace键
	VK_TAB                 Tab 键
	VK_RETURN              回车键
	VK_SHIFT               Shift键
	VK_CONTROL             Ctrl键
	VK_MENU                Alt键
	VK_PAUSE               Pause键
	VK_CAPITAL             Caps Lock键
	VK_ESCAPE              Esc键
	VK_SPACE               空格键
	VK_PRIOR               Page Up键
	VK_NEXT                Page Down键
	VK_END                 End键
	VK_HOME                Home键
	VK_LEFT                左箭头键
	VK_UP                  上箭头键
	VK_RIGHT               右箭头键
	VK_DOWN                下箭头键
	VK_SNAPSHOT            Print Screen键
	VK_Insert              Insert键
	VK_Delete              Delete键
	'0' – '9'             数字0-9
	'A' – 'Z'             字母A - Z
	VK_LWIN                左WinKey(104键盘才有)
	VK_RWIN                右WinKey(104键盘才有)
	VK_APPS                AppsKey(104键盘才有)
	VK_NUMPAD0             小键盘0键
	VK_NUMPAD1             小键盘1键
	VK_NUMPAD2             小键盘2键
	VK_NUMPAD3             小键盘3键
	VK_NUMPAD4             小键盘4键
	VK_NUMPAD5             小键盘5键
	VK_NUMPAD6             小键盘6键
	VK_NUMPAD7             小键盘7键
	VK_NUMPAD8             小键盘8键
	VK_NUMPAD9             小键盘9键
	VK_F1 - VK_F24         功能键F1–F24
	VK_NUMLOCK             Num Lock键
	VK_SCROLL              Scroll Lock键
	*/
}
	
void yanse(int ForgC, int BackC)//SetColorAndBackground函数(颜色函数) 
{
	WORD wColor=((BackC & 0x0F)<<4)+(ForgC & 0x0F);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
	return ; 
}
	
void HideCursor()//隐藏光标
{
	CONSOLE_CURSOR_INFO cur={1,0};
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cur);
}
	
void noedit()
{
	HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE);
	DWORD mode;
	GetConsoleMode(hStdin, &mode);
	mode &= ~ENABLE_QUICK_EDIT_MODE;  //移除快速编辑模式
	mode &= ~ENABLE_INSERT_MODE;      //移除插入模式
	mode &= ~ENABLE_MOUSE_INPUT;
	SetConsoleMode(hStdin, mode);
}

#endif

好了

我是脏脏包,ヾ( ̄▽ ̄)Bye~Bye~

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值