2016-12-15 5 views
0
template <class type> 
class loader{ 
private: 
    tree/*<type>*/ *seq; 
    sf::Sprite BG_img; 
    sf::Texture texture; 
    int seq_c; 
    //node<sf::String> cp1; 
    //node<sf::String> *temp; 
    //declaring text object 
    sf::Text text; 
    sf::String path; 
    string data 

public: 
    loader(){ 
     seq=NULL; 
     seq_c=1; 
     //setting font 
     sf::Font myfont; 
     myfont.loadFromFile("fonts/Myriad Pro Regular.ttf"); 

     //setting text 
     //text.SetFont(myfont); 
     //text.SetSize(20); 
     //text.setColor(sf::Color::White); 

     data=""; 
    } 

    int load_now(sf::String seq_a='1'){ 
     ifstream ff; 

     string s_path = "Sequence/" + seq_a + ".txt"; 
     ff.open(s_path, ios::in); 
     getline(ff,data); 

     path = "Sequence/" + seq_a +".jpg"; 
     texture.loadFromFile(path); 
     BG_img.setTexture(texture); 


     //setting text position 
     //text.setPosition(10,0); 

     //passing text 
     text.setString("Hello"); 
     text.setCharacterSize(20); 
     text.setColor(sf::Color::Red); 
     text.setStyle(sf::Text::Regular); 

    } 

    void draw(sf::RenderWindow &window){ 
     //window.draw(BG_img); 
     //draW TO DISPLAY text 
     window.draw(text); 
    } 
    int choose(int inp){ 
     return load_now(seq->get_data(inp)); 
    } 
}; 

こんにちは、私はSFMLを使用してテキストを表示しようとしています、私はsf :: Stringとsf :: Textを変更しようとしましたが、私は、コンストラクタのテキスト設定もコメントしてコメントを外しました。 私はプログラムを実行すると画像が表示されますが、テキストは表示されません。 注:SFMLのテキストは表示されません(?)

//declare loader 
    loader<sf::String> loader_a; 
void play(){ 
    while(window.isOpen()){ 
     window.clear(); 

     sf::Event event; 
     while(window.pollEvent(event)){ 
      if (event.type == sf::Event::Closed){ 
       window.close(); 
      } 
      //start code here 
     } 

     if (scene_counter==0){ 
      mainmenu.draw(window); 
     } 
     else if(scene_counter==1){ 
      loader_a.draw(window); 
     } 
     window.display(); 
    } 
} 

}

は、私はあなたが単にスコープの外に出たフォントを作成したテキストと画像

+0

これは[mcve]ではありません。それは最小ではないし、どちらかといって完璧ではないように見える。すべてのオプションを削除し、add_dataとset_treeとツリーを取り除きます。 –

+0

私はどんな他の情報を提供することができますか? – Bryan

+0

理想的には、sfmlを持つ誰かがコピーしてIDEに貼り付けて実行できる、完全ではあるが最小限のプログラムが必要です。表示することとは関係のないコードがたくさんあります。それでもテキストは表示されない完全なプログラムがあるまで、それを削除します。次にSFMLの例とどのように違うのかを理解する。 –

答えて

1

を表示するためのこの種のコードを使用し、それは間違っているのです。 sf :: Textはsf :: Fontへの参照を取ります。スコープから外れた場合は、テキストは表示されません。解決策は、sf :: Fontをローダクラスのメンバとして定義することです。

関連する問題