Поэтому я использовал руководство по миграции SDL 2.0 и, наконец, заставил код скомпилироваться без ошибок … но теперь он падает, это первый раз, когда у меня происходит сбой программы, и нет компилятора, который бы мне помог.
Я использую 29-й урок LazyFoo по sdl, чтобы посмотреть, смогу ли я его перенести.
Я, честно говоря, думаю, что сделал мерзость программы, и бросаю ее вам, ребята, потому что я ничего не понимаю.
Вот мой прогресс:
http://www.pastebucket.com/21174
У вас, кажется, есть пара проблем.
Прежде всего, вы не загружаете ни одно из изображений в load_images()
Функция так, что когда бы вы ни вызывали что-либо на них, т.е. рендеринг, они будут указателями NULL.
Далее ваш init()
функция.
bool init()
{
SDL_Init; // <---- REMOVE THIS LINE
//Initialize all SDL subsystems
if( SDL_Init( SDL_INIT_EVERYTHING) == -1 )
{
return false;
}SDL_Window *sdlWindow; // <----- REMOVE THIS VARIABLE
SDL_Window *window;
SDL_Texture *sdlRenderer; // <----- REMOVE THIS VARIABLE
// Create an application window with the following settings:
// NO NEED FOR SDL_WINDOW_OPENGL replace with SDL_WINDOW_SHOWN
window = SDL_CreateWindow(
"Why is this even alive?", // window title
SDL_WINDOWPOS_UNDEFINED, // initial x position
SDL_WINDOWPOS_UNDEFINED, // initial y position
640, // width, in pixels
480, // height, in pixels
SDL_WINDOW_SHOWN // flags - see below
);
// sdlWindow should be just window and you should do a NULL check before creating the render
if (window != NULL) {
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, 0);
if (renderer == NULL) {
printf("Could not create renderer: %s\n", SDL_GetError());
SDL_DestroyWindow(window);
}
}
else {
printf("Could not create window: %s\n", SDL_GetError());
return false;
}
}
Попробуйте сейчас и посмотрите, как вы поживаете. Я рекомендую вам воспользоваться IDE, чтобы выручить вас, потому что это были очень простые ошибки, которые обычно выявлялись бы сразу.
Других решений пока нет …