1

我正在尝试使用 SDL 在 C++ 中构建 RTS。现在我正在尝试制作一个矩形来选择单位(可调整大小的选择框)。这将是一个透明的黄色矩形。当我运行程序并尝试选择乘法单位时。什么都没有发生(我的意思是绘制矩形。尚未进行选择)

这是代码(在 main.cpp 中):

...
Uint32 selection_colour;
SDL_Rect box_rect;
int M1X = 0;
int M1Y = 0;
int M2X = 0;
int M2Y = 0;

int W;
int H;
...
void init()
{
...
selection_colour = SDL_MapRGBA(screen->format, 0xFF, 0xFF, 0, 0.3);
...
}
...
while(running)
{
    while(SDL_PollEvent(&event))
    {
        if(event.type == SDL_MOUSEBUTTONDOWN)
        {

            if(event.button.button == SDL_BUTTON_LEFT)
            {

                M2X = event.motion.x;
                M2Y = event.motion.y;

                W = M2X - M1X;
                H = M2Y - M1Y;

                box_rect.x = M1X;
                box_rect.y = M1Y;
                box_rect.w = W;
                box_rect.h = H;

            }

        }else
        {
            M1X = event.motion.x;
            M1Y = event.motion.y;
        }
    }

    SDL_FillRect(screen, &box_rect, selection_colour);

    SDL_Flip(screen);
}

有什么建议么??

4

0 回答 0