【问题标题】:c++ sdl window freeze and issues with sdlc++ sdl窗口冻结和sdl问题
【发布时间】:2018-11-17 17:19:28
【问题描述】:

SDL 让我很生气,请帮忙。 我只是想显示一个窗口,这是代码:

#include <iostream>
#define SDL_MAIN_HANDLED
#include "SDL.h"

int main()
{
    if (SDL_Init(SDL_INIT_VIDEO) != 0) {
        std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
        return 1;
    }
    SDL_Window *window = SDL_CreateWindow("Game", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 600, 480, SDL_WINDOW_SHOWN);
    if (window == NULL)
        return 1;
    SDL_Event event;
    bool running = true;
    while (running) {
        while (SDL_PollEvent(&event)) {
            switch (event.type) {
                case SDL_QUIT:
                    running = false;
                    break;
            }
        }
    }
    SDL_Quit();
    std::cout << "Hello :)" << std::endl;
    return 0;
}

现在,问题是它说程序现在正在响应并且我有一个鼠标的“加载”图标。第二个问题是由于某种原因我不能使用 SDL_INIT_EVERYTHING,它只是卡住了,当我在初始化后尝试输出时没有任何输出。 我尝试了多个 sdl 文件 x86 , x64。 我有 Windows 10 64 位操作系统。 我真的开始在这里失去理智,请帮助。

编辑:

该窗口与 SDL_INIT_EVERYTHING 完美配合,但计算机加载所有内容需要 1 分 50 秒。这是很多时间。

但是当我只初始化 SDL_INIT_VIDEO 时,它没有响应。 有什么解决办法吗?

【问题讨论】:

  • 第一种情况:可以点击x按钮关闭窗口吗?
  • @ubadub 当我使用 SDL_INIT_VIDEO 时我不能。当我使用 SDL_INIT_EVERYTHING 时,我可以,但加载屏幕并显示它需要 2 分钟。
  • 有人吗?请帮忙:(
  • 你为什么要定义SDL_MAIN_HANDLED?看起来你甚至不知道它的用途。您可能只想学习教程或其他内容,因为您错过了几乎每个程序都会做的重要事情:延迟。无论如何,这不是图书馆的错。

标签: c++ sdl


【解决方案1】:

好的,所以我已经下载了旧版本 2.0.5 而不是新的“稳定”版本,并且似乎可以正常工作。我猜新版本只是有需要修复的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多