嗨,大家好
为了以友好的方式扩展 sfml 应用程序,我试图弄清楚这一点,该程序最初以(640,480)维度运行
显示这样的窗口...
我的目标是在全屏模式下执行该程序,并将旧的'窗口'(检查图像)放在中间,这样可以保留原始尺寸和特征。
好的,我正在使用默认的sfml样式'Style::Fullscreen'初始化主文件应用程序。
RenderWindow(sf::VideoMode(), "app.exe", sf::Style::Fullscreen);
空白参数'VideoMode()'不会根据 sfml 做出默认缩放(不调整大小),这避免了程序失真,但是某些功能也不起作用,例如查看改变了,其余的图像则按旧尺寸分布在窗口上,这是合乎逻辑的,因为我的应用程序以这种方式获取 View 。
sf::View worldview(RenderWindow.getDefaultView());
我可以解决设置屏幕尺寸时遇到的一些麻烦。但是,还有另一种方法可以改善此问题,并尝试将旧“窗口” (全屏显示)居中?
最佳答案
SFML窗口的默认样式是sf::Style::默认,而不是sf::Style::Fullscreen。
默认为您提供标准选项,例如最小化,全屏和退出。要使用它们,您需要设置事件检测(单击按钮)。
原则上,就足够了,写在游戏循环中while (window.isOpen())
sf::Event _event;
while (window.pollEvent(_event)) {
if (_event.type == sf::Event::Closed) {
window.close();
}
}
关于c++ - SFML全屏和居中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61481977/