Моя программа отображает пустую поверхность, где она должна отображать карту - PullRequest
0 голосов
/ 05 февраля 2012

У меня проблема с SDL.Как видите, у меня есть 3 файла: include.h, map.h, source.cpp.

В include.h я включил все библиотеки.В map.h я написал класс: getTileID читает изображение и нарезает его на плитки, getTilePosition читает файл .txt, функция drawMap создает поверхность, присваивая нарезанные плитки поверхности значениям id из текстового файла.source.cpp Я инициализирую SDL, SetVideoMode и создаю класс A. После этого я вызываю функции класса A.После вызова я перевожу переменную A.mapSurface [0] на экран и переворачиваю ее.

Ничего не происходит.Экран загружается, и, как мне кажется, он переворачивается с пустой поверхностью, но для этого нужно отобразить переменную mapSurface.

Пожалуйста, помогите.-

//source.cpp
//----------------------------------------------------------------------------------------------------
#include "../libraries/include.h"
//----------------------------------------------------------------------------------------------------
int main(int argc,char *argv[])
{

    if(SDL_Init(SDL_INIT_EVERYTHING) != NULL)
        exit(0);

    SDL_Surface *screen;
    screen = SDL_SetVideoMode(1024, 768, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);

    map A;
    A.getTileID("map.png");
    A.getTilePosition("map.txt");
    A.drawMap();

    screen = A.mapSurface[0];
    SDL_Flip(screen);
    SDL_Delay(1000);
    SDL_FreeSurface(screen);
    SDL_Quit();

    return 0;
}

1 Ответ

0 голосов
/ 05 февраля 2012

Похоже, вы рисуете карту на map::mapSurface[0], но эта поверхность никогда не отображается на экране. Бросьте временную поверхность на экран после drawMap или нарисуйте прямо на экран.

...