2

我正在制作一个带有表示对象的位图的小游戏,并且我正在尝试使用位图蒙版来掩盖背景。我在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()

谁能告诉我如何掩盖背景然后将窗口移动到新位置

编辑:顺便说一句,背景只是另一个位图,其加载方式与显示船舶顶部的其他位图相同。

4

0 回答 0