一个简单的延时函数实现
在单片机中一般使用的delay()函数是通过采用for或者while循环,让计算机跑无用的代码,从而达到延时的目的,但这有一个坏处,控制不精确,而且PC比单片机的运算效率高很多,难以量化停止的时间。
经过查阅资料后,发现了一个简易的延时函数。
#include <ctime> void Delay(int time)//time*1000为秒数 { clock_t now = clock(); while (clock() - now < time); }
这采用了<cmath>头文件中的clock()函数,并将延时开始的时间记录,与当前时间比较,当当前时间减去延时开始的时间等于停止时间时,跳出循环。
一个可以达成实时输入的小技巧
#include<windows.h> while (1) { if (GetKeyState(65)<0) ball1.left(1); else if (GetKeyState(68)<0) ball1.right(1); else if (GetKeyState(87)<0) ball1.up(1); else if (GetKeyState(83)<0) ball1.down(1); system("Pause"); }
运用GetKeyState()函数实现wasd移动。
该函数可以随时读取键盘上摁下的按键,如果是设定的按键,它会返回一个负数,并在松开时返回1或0,因此只要检验其是不是小于0,就可验证是否输入了想要的字符。
GetKeyState()与其他输入流的比较
它可以使用户不用在每次输入后输入\n,更加流畅。
**注意,该函数的参数为对应字符的ASCII码。