2013-02-17 2 views
0

이전에 SDL에 문제가 게시되어 제 함수가 항상 null을 반환합니다. 나는 분명히 뭔가를 풀어 내 문제에 대한 해답을 얻었지만 모든 것이 아닙니다. 내 기능은 아직 모든 이미지에 타일을 인쇄되지 않습니다,SDL Tiling 파트 ​​2

//Make a temporary map to draw the tiles to 
Uint32 rmask, gmask, bmask, amask; 
if (SDL_BYTEORDER == SDL_BIG_ENDIAN) { 
    rmask = 0xff000000; 
    gmask = 0x00ff0000; 
    bmask = 0x0000ff00; 
    amask = 0x000000ff; 
} 
else { 
    rmask = 0x000000ff; 
    gmask = 0x0000ff00; 
    bmask = 0x00ff0000; 
    amask = 0xff000000; 
} 
SDL_Surface* temp_map = SDL_CreateRGBSurface(SDL_SWSURFACE, MAP_WIDTH, MAP_HEIGHT, 32, rmask, gmask, bmask, amask); 

이미지가 더 이상 null를 돌려줍니다 있지만 :

Tiling System C++ SDL 내가 내 map.cpp 파일에 다음과 같은 추가 :이 게시물입니다. 이미지는 완전히 투명합니다.

답변

1

코드는 유효한 test_map을 생성해야하며, SDL_CreateRGBSurface에 문서화 된 here을 참조하십시오.

에있는 SDL_Rect의 값이 모두 설정되어 있지 않다는 점을 명심해야합니다. SDL_Rect에는 메모리를 초기화하는 기본 생성자가 없습니다. xy 만 지정하고 wh을 할당하면 wh에 쓰레기가 포함됩니다. 소스 표면의 wh에이 값을 초기화해야합니다 (this example 참조).

+0

도움을 주셔서 감사합니다. 나 자신을 알아 냈지만 몇 시간 동안 내 자신의 질문에 답변하지 못하게하고 그 때까지 잊어 버렸습니다. 그리고 충고에 감사드립니다! –