提问人:Blifix 提问时间:10/23/2023 最后编辑:Blifix 更新时间:10/23/2023 访问量:27
SFML 在加载多个纹理和精灵后没有响应
SFML not responding after loading multiple textures and sprites
问:
我在SFML中编码了很多东西,但从来没有遇到过这个问题,我有最简单的调用,我决定等待,因为这是稍后在代码中发生的事情,所以我想测试它,无论出于何种原因,这都会使我的窗口无响应,这是我的主要:
int main()
{
sf::RenderWindow window(sf::VideoMode(1920, 1400), "R-TYPE");
game_state screen;
screen = game_state::MENU;
menu menu_state;
game game_state;
while (window.isOpen()) {
if (screen == game_state::MENU)
menu_state.menu_screen(screen, window);
else if (screen == game_state::GAME)
game_state.game_screen(screen, window);
else if (screen == game_state::END)
return (0);
}
return 0;
}
剩下的就是了
int menu::menu_screen(game_state &screen, sf::RenderWindow &window)
{
sf::Event event;
while (window.isOpen()) {
if (animating == true)
menuAnimation(window);
while (window.pollEvent(event)) {
handle_window(window, event);
if (event.type == sf::Event::KeyPressed) {
if (event.key.code == sf::Keyboard::Escape) {
window.close();
return 0;
}
if (event.key.code == sf::Keyboard::Return) {
screen = game_state::GAME;
return 1;
}
}
}
}
return 0;
}
void menu::menuAnimation(sf::RenderWindow& window)
{
sf::Clock clock;
sf::Time loopTime = sf::seconds(10.0f);
while (clock.getElapsedTime() < loopTime) {
window.clear();
window.display();
}
window.clear();
animating = false;
}
void menu::handle_window(sf::RenderWindow& window, sf::Event event)
{
if (event.type == sf::Event::Closed) {
window.close();
}
}
我似乎真的不明白为什么,如果我用任何需要那么长时间的东西替换 menuAnimation,例如在屏幕上做事的 while 循环“出于动画目的,它仍然做同样的事情有人知道它可能是什么吗?这就是发生的事情
这个列表太长了,但我已经尝试了我所知道的几乎所有事情。
答: 暂无答案
评论