【发布时间】: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?看起来你甚至不知道它的用途。您可能只想学习教程或其他内容,因为您错过了几乎每个程序都会做的重要事情:延迟。无论如何,这不是图书馆的错。