【㵘】如何用c++打小恐龙
关于这个问题嘛……
思路
先给链接给没玩过的人(应该OIer都玩过吧)
小恐龙链接:chrome://dino (请打开Chrome浏览器导航栏输入)
这是一款像素游戏,所以我们自然能想到用屏幕RGB值获取当前小恐龙离障碍物多远;
说人话,我们不停地获取小恐龙前方一点处的颜色,若那个颜色==障碍物的颜色就让它跳一下。
具体怎么获取屏幕前一点颜色,怎么操作键盘,感兴趣的可以自己去查,我这里就不详细介绍
废话不多说,直接上源码
#include <Windows.h>
#include<cstdio>
#pragma comment (lib, "User32.lib")
//如果屏幕前的你用的是devc++等请编译时手动加入" -lgdi32 "命令,不然会报错(听说vc++不用)
int r,g,b;
int main(void){
Sleep(5000);
freopen("log.qaq","w",stdout);
for(int i=1;i<=600;i++){
HWND hWnd = ::GetDesktopWindow();
HDC hdc = ::GetDC(hWnd);
// HDC hdc = ::GetDC(NULL);
int x=353,y=443;//353 443,这是定下的点获取屏幕RGB,请将Chrome全屏或按自己需求调
COLORREF pixel=::GetPixel(hdc,x,y);
if (pixel != CLR_INVALID) {
int red = GetRValue(pixel);
int green = GetGValue(pixel);
int blue = GetBValue(pixel);
r=red;
g=green;
b=blue;
printf("R=%d G=%d B=%d\n",red,green,blue);
} else {
printf("outside");
}
if(r==83&&b==83&&g==83){
keybd_event(32,0,0,0);
keybd_event(32,0,KEYEVENTF_KEYUP,0);
}
Sleep(20);
}
//system("PAUSE");
return 0;
}```