외장 개발 읽기 게임 화면 판단 게임 상태
1. 화면 읽기:
byte BitMap[4];
CDC *pDC;// DC
pDC = CDC::FromHandle(GetDC(NULL));// DC
int BitPerPixel = pDC->GetDeviceCaps(BITSPIXEL);//
int Width = pDC->GetDeviceCaps(HORZRES);//
int Height = pDC->GetDeviceCaps(VERTRES);//
CDC memDC;// DC
memDC.CreateCompatibleDC(pDC);
CBitmap memBitmap, *oldmemBitmap;// bitmap
// BitMap X.Y
memBitmap.CreateCompatibleBitmap(pDC, Width, Height);
oldmemBitmap = memDC.SelectObject(&memBitmap);// memBitmap DC
//
// 1.2: X.Y
// 2.3: X.Y
// 6.7: X.Y
memDC.BitBlt(0, 0, 100, 30, pDC, 0, 25, SRCCOPY);// DC
// memDC
BITMAP bmp;
memBitmap.GetBitmap(&bmp);//
FILE *fp = fopen(filename, "w+b");
BITMAPINFOHEADER bih = {0};//
bih.biBitCount = bmp.bmBitsPixel;//
bih.biCompression = BI_RGB;
bih.biHeight = 30;//
bih.biPlanes = 1;
bih.biSize = sizeof(BITMAPINFOHEADER);
bih.biSizeImage = (bmp.bmWidthBytes * bmp.bmHeight)/100;//
bih.biWidth = 100;//
BITMAPFILEHEADER bfh = {0};//
bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);//
bfh.bfSize = bfh.bfOffBits + bmp.bmWidthBytes * bmp.bmHeight;//
bfh.bfType = (WORD)0x4d42;
fwrite(&bfh, 1, sizeof(BITMAPFILEHEADER), fp);//
fwrite(&bih, 1, sizeof(BITMAPINFOHEADER), fp);//
byte * p = new byte[bmp.bmWidthBytes * bmp.bmHeight];//
GetDIBits(memDC.m_hDC, (HBITMAP) memBitmap.m_hObject, 0, Height, p,
(LPBITMAPINFO) &bih, DIB_RGB_COLORS);//
fwrite(p, 1, bmp.bmWidthBytes * 30, fp);//
//bmp (Pix_Y * File_X + Pix_X)*3-1
// RGB 4
//RGB BGR 255 B G R
//
// , ,
int pix,x=0,y=0;// X Y
x=(x+1);
y=(30-y);
y=(y-1);
pix=(x+(y*100))*4;
//
BitMap[0] = p[pix-2];
BitMap[1] = p[pix-3];
BitMap[2] = p[pix-4];
BitMap[3] = p[pix-5];
//HeapSize( GetProcessHeap(), 0, p))
delete [] p;
fclose(fp);
memDC.SelectObject(oldmemBitmap);
2. 화면 대비
관심 있는 학생들은 코드에 대해 봉인 최적화를 할 수 있다. 예를 들어 모호한 대비와 픽셀을 읽는 코드의 최적화를 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.