2017-12-08 18 views
0

私はちょうどチェスエンジンを書こうとしましたが、私にとって重要なことは、ゲームの素晴らしい視覚的表現を得ることです。私はVisual Studioプロジェクトでコードを実装しようとしました。問題は、プログラムでロードしたテクスチャの代わりに黒い画面しか表示されないということです。SFMLグラフィックウィンドウにテクスチャを描く - 黒い画面

マイコードは以下の通りです:

#include <SFML/Graphics.hpp> 
#include <time.h> 
using namespace sf; 

int main(){ 

    RenderWindow window(VideoMode(1000, 1000), "MattseChess!"); 

    Texture t1; 
    t1.loadFromFile("images/board.png"); 
    Sprite s(t1); 

    while (window.isOpen()) 
    { 
     Event e; 

     while (window.pollEvent(e)) { 

      if (e.type == Event::Closed) 
       window.close(); 
    //Draw 
      window.clear(); 
      window.draw(s); 
      window.display(); 
     } 
    } 

    return 0; 
} 

あなたは私が間違って何をしたかのいずれかのアイデアを持っていますか?

答えて

0

そのコードが機能します。私はあなたの実行パスのimagesディレクトリにboard.pngを入れていないと確信しています。

は、このイメージが使用可能であることを確認してください:

t1.loadFromFile("images/board.png"); 
+0

間違いありません!私が持っていた1つのアイデアは、プログラムが実際にテクスチャを読み込むことですが、ウィンドウの「外」の非常に奇妙な場所に置くので、私はそれを見ません。それは可能ですか? – beinando

+0

途中です。 SFMLはそれをウィンドウの0/0に置きます。それはPNGで、最初の黒いチェッカーボードのフィールドは黒で画面全体を満たしていますか? –

2

があなたのイベントループの外に描画コードを入れていることを確認してください。それ以外の場合は、何らかのイベントが発生したとき(カーソル移動など)にのみ描画されます。

+0

それはまだ動作していない、ちょうどそれを試してみました。 Visual Studioで動作していないか、特別なコンパイル設定が必要なことはありますか? .dllもx64でコンパイルされていたので、私はx86の代わりにx64を使用してコンパイルしました。 これまでのところ、コンパイルエラーや何か他のものはなく、ちょうどきれいな黒いウィンドウです。 – beinando