画像は正しく読み込まれているように見えますが、コンソール ウィンドウを SDL ディスプレイ上にドラッグしない限り、実際には表示されません。コンソール ウィンドウが重なっている SDL ディスプレイの部分だけが表示されるので、基本的にはコンソール ウィンドウを使用してイメージを「ペイント」し、その後はそのままにします。
#include "SDL.h"
class Game
private:
SDL_Surface* displayWindow_;
//Rest of class
};
重要な機能は次のとおりです: (GetWallpaper() が有効なポインターを返すことに注意してください)
void Game::Render(){
GameState* currentGameState = gameStateManager_->GetCurrentState();
if(currentGameState)
{
surface::Draw(currentGameState->GetWallpaper(), displayWindow_, 0, 0);
SDL_Flip(currentGameState->GetWallpaper());
}
return;
}
ついに
bool surface::Draw(SDL_Surface* sourceSurface, SDL_Surface* targetSurface,
int x, int y){
if(sourceSurface == NULL || targetSurface == NULL)
return false;
SDL_Rect targetRectangle;
targetRectangle.x = x;
targetRectangle.y = y;
SDL_BlitSurface(sourceSurface, NULL, targetSurface, &targetRectangle);
return true;
}
誰でもこれに光を当てることができますか?