2012-08-24 2 views
0

질감이없는 아래 코드를 호출하면 sf::vertexarray 에 텍스처를 그리려고합니다. 빨간색 테두리가있는 사각형을 잘 표시 할 수 있습니다. 텍스처를 추가하면 아무 것도 볼 수 없습니다.SFML에서 vertexarray를 사용하는 방법은 무엇입니까?

내가 뭘 잘못하고 있니?

sf::VertexArray v_array; 
v_array.append(sf::Vertex(sf::Vector2f(1,1) , sf::Color::Red)); 
v_array.append(sf::Vertex(sf::Vector2f(60,1) , sf::Color::Red)); 
v_array.append(sf::Vertex(sf::Vector2f(60,10), sf::Color::Red)); 
v_array.append(sf::Vertex(sf::Vector2f(1,10), sf::Color::Red)); 
v_array.append(sf::Vertex(sf::Vector2f(1,1), sf::Color::Red)); 

v_array.setPrimitiveType(sf::LinesStrip); 
sf::Texture text; 
text.loadFromFile("../ressources/tileset_base.png"); 

sf::RenderStates rend(&text); 

sf::RenderWindow App(sf::VideoMode(800, 600, 32), "SFML Graphics"); 

// Start game loop 
while (App.isOpen()) 
{ 
    // Process events 
    sf::Event Event; 
    while (App.pollEvent(Event)) 
    { 
     // Close window : exit 
     if (Event.type == sf::Event::Closed) 
      App.close(); 
    } 
    App.clear(); 
    App.draw(v_array/*, rend*/); 
    App.display(); 
} 

답변

3

꼭지점에 텍스처 좌표를 지정해야합니다. 다음 두 생성자 중 하나를 사용할 수 있습니다 :

Vertex (const Vector2f &thePosition, const Vector2f &theTexCoords) 
Vertex (const Vector2f &thePosition, const Color &theColor, const Vector2f &theTexCoords) 

참조 문서 here

작은 팁 :

App.draw(v_array, &text); 
: 당신은 단지 하나의 상태 (예를 들어에만 텍스처를) 렌더링 사용하는 경우이 바로 가기를 사용할 수 있습니다
관련 문제