0

我创建了这个简单的功能,它似乎有问题,我真的不明白它是什么......

Evnt.motion.yrel 输出疯狂的数字。

void EnthropyGenerator::OpenWindow()
{
    SDL_Window *EnthropyGeneratorWindow;
    SDL_Renderer* Renderer;
    SDL_Init(SDL_INIT_VIDEO);
    EnthropyGeneratorWindow =
        SDL_CreateWindow("Enthropy Generator",
                         SDL_WINDOWPOS_CENTERED,
                         SDL_WINDOWPOS_CENTERED,
                         WindowSizeX,
                         WindowSizeY,
                         SDL_WINDOW_SHOWN |
                           SDL_WINDOW_BORDERLESS |
                           SDL_WINDOW_INPUT_GRABBED);

    if (EnthropyGeneratorWindow == NULL)
    {
        ServerEngine::FatalError("Could not create window: " +
                                 (std::string)SDL_GetError());
    }

    Renderer = SDL_CreateRenderer(EnthropyGeneratorWindow, -1, 0);
    SDL_SetRenderDrawColor(Renderer, 10, 255, 0, 255);
    SDL_RenderClear(Renderer);
    SDL_RenderPresent(Renderer);

    bool NeedMoreEntropy = true;
    SDL_Event Evnt;
    while (NeedMoreEntropy)
    {
        while (SDL_PollEvent(&Evnt))
        {
            if (Evnt.type == SDL_MOUSEMOTION)
            {
                std::cout << Evnt.motion.xrel << " and "
                          << Evnt.motion.yrel << std::endl;
                std::cout << m_EnthropyNeed << std::endl;
                UpdateMousePosition(Evnt.motion.xrel, Evnt.motion.yrel);
                AddEnthropy(m_MouseX, m_MouseY);
                if (m_EnthropyNeed == 256)
                {
                    NeedMoreEntropy = false;
                }
            }
        }
    }

    SDL_DestroyWindow(EnthropyGeneratorWindow);
    SDL_Quit();
}

void EnthropyGenerator::UpdateMousePosition(int deltaX, int deltaY)
{
    m_MouseX += deltaX;
    m_MouseY += deltaY;
}

void EnthropyGenerator::AddEnthropy(int deltaX, int deltaY)
{
    m_EnthropyNeed++;
}

控制台中的输出为:0 和 1985359926 等等。

输出

似乎某些东西没有初始化或看起来像一个坏指针。我该如何解决这个问题?

4

0 回答 0