C++ SFML窗口大小调整非常难看

C++ SFML窗口大小调整非常难看,c++,sfml,C++,Sfml,当我调整sfml窗口的大小时,当我剪切resize使其变小,然后调整resize使其变大时,它会给你一个非常奇怪的效果。 如何使调整尺寸更美观?代码来自code::blocks的安装教程。 代码(与sfml网站上Code::blocks的安装教程中的代码相同): #包括 int main() { sf::RenderWindow窗口(sf::VideoMode(200200),“SFML工作!”; sf:圆形(100.f); setFillColor(sf::Color::Green); wh

当我调整sfml窗口的大小时,当我剪切resize使其变小,然后调整resize使其变大时,它会给你一个非常奇怪的效果。

如何使调整尺寸更美观?代码来自code::blocks的安装教程。 代码(与sfml网站上Code::blocks的安装教程中的代码相同):

#包括
int main()
{
sf::RenderWindow窗口(sf::VideoMode(200200),“SFML工作!”;
sf:圆形(100.f);
setFillColor(sf::Color::Green);
while(window.isOpen())
{
sf::事件;
while(window.pollEvent(事件))
{
如果(event.type==sf::event::Closed)
window.close();
}
window.clear();
窗口。绘制(形状);
window.display();
}
返回0;
}

您需要管理窗口的大小调整。否则坐标就错了。下面是您的代码摘录和解决方案。这篇论坛帖子的作者,我在这里找到了它,当时我正在寻找解决方案:

此外,还可以根据新尺寸设置新坐标。该链接提供了更多信息

// create own view
sf::View view = window.getDefaultView();

while (window.isOpen())
{
    sf::Event event;
    while (window.pollEvent(event))
    {
        if (event.type == sf::Event::Closed)
            window.close();

        if (event.type == sf::Event::Resized) {
            // resize my view
            view.setSize({
                    static_cast<float>(event.size.width),
                    static_cast<float>(event.size.height)
            });
            window.setView(view);
            // and align shape
        }
    }
//创建自己的视图
sf::View=window.getDefaultView();
while(window.isOpen())
{
sf::事件;
while(window.pollEvent(事件))
{
如果(event.type==sf::event::Closed)
window.close();
if(event.type==sf::event::Resized){
//调整我的视图大小
view.setSize({
静态投影(事件、大小、宽度),
静态投影(事件、大小、高度)
});
window.setView(视图);
//并对齐形状
}
}

您需要管理窗口的大小。否则坐标就错了。下面是您的代码摘录和解决方案。这篇文章的作者是我在寻找解决方案时找到的:

此外,您还可以根据新尺寸设置新坐标。该链接提供了更多信息

// create own view
sf::View view = window.getDefaultView();

while (window.isOpen())
{
    sf::Event event;
    while (window.pollEvent(event))
    {
        if (event.type == sf::Event::Closed)
            window.close();

        if (event.type == sf::Event::Resized) {
            // resize my view
            view.setSize({
                    static_cast<float>(event.size.width),
                    static_cast<float>(event.size.height)
            });
            window.setView(view);
            // and align shape
        }
    }
//创建自己的视图
sf::View=window.getDefaultView();
while(window.isOpen())
{
sf::事件;
while(window.pollEvent(事件))
{
如果(event.type==sf::event::Closed)
window.close();
if(event.type==sf::event::Resized){
//调整我的视图大小
view.setSize({
静态投影(事件、大小、宽度),
静态投影(事件、大小、高度)
});
window.setView(视图);
//并对齐形状
}
}