Это проблема SDL, однако у меня есть сильное чувство, что проблема, с которой я столкнулся, связана не с SDL, а больше с C ++ / указателями в целом.
Короче говоря, этокод не работает (отредактирован, чтобы показать, что я действительно сделал):
player->picture = IMG_Load("player");
SDL_BlitSurface(player->picture, NULL, screen, &pictureLocation);
Я ничего не вижу на экране.Однако, когда я делаю это так, это работает:
SDL_Surface* picture = IMG_Load("player.png");
player->picture = picture;
SDL_BlitSurface(player->picture, NULL, screen, &pictureLocation);
Я прекрасно вижу маленького парня.
Реальная проблема в том, что я не могу создать экземпляр Player :: picture напрямую.Даже когда я пытаюсь
picture = IMG_Load("player.png")
в player.cpp, я получаю нулевой указатель.