top of page
  • 執筆者の写真bosi siro

C++ SFMLでゲーム作成 画像の表示

C++でSFMLというライブラリを使って簡単なゲームを作っていきます。


SFMLでは、画像が白い四角系になる(white square problem)問題が良く起こるようです。

私もこれに困ったので、今回記事にします。


解決方法

画像ファイルをクラスで取得しておくことで、解決

ストライプに座標設定する際に、このクラスを呼び出し、座標と一緒に入力することで

white square probremが解決しました。


以下コード


//ベースの画像ファイル取得用クラスコード

class TextureManager {

public:

TextureManager(const std::string& filename) {

if (!m_texture.loadFromFile(filename)) {

std::cerr << "Failed to load texture: " << filename << std::endl;

}

}


sf::Texture& getTexture() {

return m_texture;

}


private:

sf::Texture m_texture;

};



問題

何が起きたかというと、2次元配列に0と1だけ入力した


{

0,1,0,0

1,1,0,0

}

のようなファイルを作成したのですが、末尾部分だけ正常に画像が表示され、他は全て真っ白の四角が表示されるという問題が起こりました。


今回、一つのマップチップファイル(32*32ピクセル画像の集合体).pngを使用しました。

文字列が「0」の場合はファイル内座標[0,0]そして「1」の場合は座標[32,0]の[32,32]ピクセルをテクスチャとして利用することとしました。


そして、「白い四角が表示される」のはテクスチャを保持することが出来ていないことが原因だったみたいです。


なぜ保持されないかは、うまく説明できないので省きます

閲覧数:1回0件のコメント

最新記事

すべて表示

C++ SFML マップのスクロール

本日は時間が無い為、突貫工事になる マップのスクロール機能を実装 以下が、追加分になる // プレイヤーを中心にスクロールするビューを作成 sf::View view(sf::FloatRect(0, 0, 800, 600));...

Comentários


bottom of page