C++ SFML窗口大小调整非常难看
当我调整sfml窗口的大小时,当我剪切resize使其变小,然后调整resize使其变大时,它会给你一个非常奇怪的效果。 如何使调整尺寸更美观?代码来自code::blocks的安装教程。 代码(与sfml网站上Code::blocks的安装教程中的代码相同):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
#包括
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(视图);
//并对齐形状
}
}