SFML视图函数需要一个完整的框架吗?

时间:2016-01-22 20:56:51

标签: c++ sfml

我正在使用C++SFML 2.3.2中撰写游戏。它是2D和基于图块的。我希望窗口可以调整大小。而不是调整大小的窗口显示与原始世界相同的世界,我希望它显示更多。例如,调整大小的窗口中的字符将更小。

所以,在我的循环中,我首先处理输入。然后调用我的更新功能。然后我绘制到sf::View,然后调用窗口的display()函数。在我的input()函数中,我创建了一个sf::Event,然后我有一个while循环window.pollEvent(event)。然后我检查sf::Event::Resized,然后我打电话给:

view.setSize(event.size.width, event.size.height);

然后我希望我的背景(sf::Sprite)调整为视图的新大小。

background.setScale(
            float(event.size.width) / float(this->game->background.getTexture()->getSize().x), 
            float(event.size.height) / float(this->game->background.getTexture()->getSize().y));

然后,我需要将它的位置设置为新的(0,0)。

background.setPosition(window.mapPixelToCoords(sf::Vector2i(0, 0)));

调整大小后,背景不会出现在新的(0,0)中。所以,当我按下" Space"时,我添加了相同的代码来运行。如果我按下空格,它将移动到正确的(0,0)。

所以,我想我的问题是,setPosition是否需要一个完整的框架才能运行?

0 个答案:

没有答案