模板整合计划一些好玩的函数
Posted xing-ling
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板整合计划一些好玩的函数相关的知识,希望对你有一定的参考价值。
【模板整合计划】一些好玩的函数
之前闲得无聊用 \\(C++\\) 写了几个小游戏,在这期间学了一些 \\(windows.h\\) 里的函数。。。
(以下函数若无特殊说明均需要使用函数库 <\\(windows.h\\)> 或者万能头 <\\(bits\\)/\\(stdc\\)++\\(.h\\)>)
【 clock ( ) , CLOCKS _ PER _ SEC 】
头文件: <\\(ctime\\)>
功能: \\(clock()\\) 是计算从 \\(“\\) 开启这个程序 \\(”\\) 到 \\(“\\) 调用\\(clock()\\) 函数 \\(”\\) 时之间的 \\(CPU\\) 时钟计时单元(\\(clock tick\\))数,而 \\(CLOCKS\\) _ \\(PER\\) _ \\(SEC\\) 是一个常量,表示一秒钟内 \\(CPU\\) 运行的时钟周期数。换句话说,如果用前者除以后者就可以得到程序运行时间。
(节选自百度百科)
inline void print_time(){
//注意要用double
printf("time:%lf\\n",(double)clock()/(double)CLOCKS_PER_SEC);
}
【 system(部分)】
节选自百度百科
头文件: <\\(cstdlib\\)>
\\((1)\\) \\(“shutdown”\\)
功能: 关机,重启,注销,休眠。
说明: | ||
---|---|---|
指令/代码 | 效果/含义 | |
\\(shutdown\\) \\(-s\\) | 关机 | |
\\(shutdown\\) \\(-f\\) | 强行关闭应用程序 | |
\\(shutdown\\) \\(-l\\) | 注销当前用户 | |
\\(shutdown\\) \\(-r\\) | 关机并重启* | |
\\(shutdown\\) \\(-s\\) \\(-t\\) 时间 | 设置关机倒计时 | |
\\(shutdown\\) \\(-h\\) | 休眠 |
我曾在机房内网聊天软件里发了一张玩贪吃蛇界面的截图,然后将下面这行代码伪装成一个假的贪吃蛇上传了上去,不明真相的好奇宝宝们纷纷点开了它...然后...我被锤了...
//效果/含义:强制关闭应用程序并在0秒后关机
inline void turn_off(){
system("shutdown -s -f -t 0");
}
\\((2)\\) \\(“pause”\\)
功能: 暂停程序并在当前光标处输出\\(“\\)按任意键以继续\\(”\\)
system("pause");
\\((3)\\) \\(“cls”\\)
功能: 清空 \\(cmd\\) 窗口里的内容。
system("cls");
\\((4)\\) \\(“color\\) ## \\(”\\)
功能: 改变窗口内前景,背景颜色。具体由两个 \\(16\\) 进制数决定,第一个参数应用于背景,第二个应用于前景。
参数含义: | ||||
---|---|---|---|---|
\\(16\\) 进制数 | 效果/含义 | \\(16\\) 进制数 | 效果/含义 | |
0 | 黑色 | 8 | 灰色 | |
1 | 蓝色 | 9 | 淡蓝色 | |
2 | 绿色 | A | 淡绿色 | |
3 | 浅绿色 | B | 淡浅绿色 | |
4 | 红色 | C | 淡红色 | |
5 | 紫色 | D | 淡紫色 | |
6 | 黄色 | E | 淡黄色 | |
7 | 白色 | F | 亮白色 |
//效果/含义:将窗口设为白色背景黑色字体
system("color 70");
在写小游戏时,这些都是关键\\((QAQ)\\)
【 SetCursorPos ( x , y ) 】
头文件: <\\(window.h\\)>
功能: 将鼠标指针移至指定位置,若移动成功,则返回 \\(1\\),否则返回 \\(0\\)。
想象一下,若用一个 \\(while(1)\\) 配合 \\(rand()\\) 来随机移动会是一幅怎样的情形?可以尝试一下。
//效果/含义:随机移动鼠标光标约3秒
srand((int)time(NULL));//关联时间随机函数发射 Biu! Biu! Biu!
inline void move_mouse(){
int sec=0;
while(sec<3*200){//定一下时,免得玩得太过停不下来
SetCursorPos(rand()%1024,rand()%768);//电脑一般只有这么多像素点,也可以自己改模数
Sleep(1);
sec++;
}
}
【 GetAsyncKeyState ( key ) 】
头文件: <\\(window.h\\)>
功能: 判断指定虚拟键状态,如果指定键被按下,则返回 \\(1\\),否则返回 \\(0\\)。
这个就很有意思了,在我写的小游戏中,用这个来移动小人,物体等等。
//效果/含义:如果按下了“上”这个按键,程序暂停2秒并输出“FBI WARNING!”
if(GetAsyncKeyState(VK_UP)){//获取虚拟键使用情况
printf("FBI WARNING!\\n");
Sleep(2000);
}
事实上把代码中的 \\(VK\\)_\\(UP\\) 换成它的对应值 \\(38\\)也是可行的。
查找按键的虚拟键码和对应值
资源: 虚拟键码表
【 SetConsoleCursorPosition 】
头文件: <\\(window.h\\)>
功能: 这是一个 \\(windows\\) \\(API\\)函数,可以将界面里的光标移至指定位置。注意在 \\(cmd\\) 窗口里是以左上角定点建立的坐标系,\\(x\\) 横向向右递增,\\(y\\) 竖向向下递增。
void gotoxy(int x,int y){
COORD pos;//这里的pos是一个结构体
pos.X=x;//横坐标
pos.Y=y;//纵坐标
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);//移动光标
}
【 cin/cout 加速 】
功能: 众所周知,\\(cin/cout\\) 跑得非常慢,肯定很多人都被这玩意儿坑过,实际上它是可以用一行代码加速的。
原理: 禁止使用输入输出缓存。
ios::sync_with_stdio(false);
以上是关于模板整合计划一些好玩的函数的主要内容,如果未能解决你的问题,请参考以下文章