我正在使用位图表示对象的小游戏,我试图使用位图蒙版来掩盖背景。我在google上查了一下并制作了两个位图。其中一艘船和一艘作为面具。对于面具,我把我想要的所有可见黑色和背景白色着色。 (如果这应该是相反的,请告诉我)。我这样加载位图:
HBITMAP bmpShip = (HBITMAP)LoadImage(NULL,
"C:\\Users\\Owner\\Desktop\\Asteroids\\Starship.bmp",
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE);
HBITMAP hShipMask = (HBITMAP)LoadImage(NULL,
"C:\\Users\\Owner\\Desktop\\Asteroids\\StarshipMask.bmp",
IMAGE_BITMAP,
0,
0,
LR_LOADFROMFILE);
现在我如何使用BitBlt光栅操作在特定位置显示屏幕背景而没有背景的位图。没有掩盖背景,这就是我一直在做的事情:
Ship = CreateWindowEx(0,
"STATIC","",
SS_CENTERIMAGE | SS_REALSIZEIMAGE | SS_BITMAP | WS_CHILD | WS_VISIBLE,
10,
shipPos,
294,
86,
Background,
(HMENU)-1,
NULL, NULL);
SendMessage(Ship, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)bmpShip);
UpdateWindow(hWnd);
//And moving the window with MoveWindow()
任何人都可以告诉我如何掩饰背景然后将窗口移动到新位置
编辑:顺便说一句,背景只是另一个位图加载方式与其他显示在船上的位图相同。