SDL 1.2 — & gt; SDL 2.0 (сбойная программа)

Поэтому я использовал руководство по миграции SDL 2.0 и, наконец, заставил код скомпилироваться без ошибок … но теперь он падает, это первый раз, когда у меня происходит сбой программы, и нет компилятора, который бы мне помог.
Я использую 29-й урок LazyFoo по sdl, чтобы посмотреть, смогу ли я его перенести.
Я, честно говоря, думаю, что сделал мерзость программы, и бросаю ее вам, ребята, потому что я ничего не понимаю.
Вот мой прогресс:
http://www.pastebucket.com/21174

0

Решение

У вас, кажется, есть пара проблем.

Прежде всего, вы не загружаете ни одно из изображений в 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, чтобы выручить вас, потому что это были очень простые ошибки, которые обычно выявлялись бы сразу.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]