Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 2.0] - Rysowanie kwadratu

Ostatnio zmodyfikowano 2012-07-03 18:33
Autor Wiadomość
michalo
Temat założony przez niniejszego użytkownika
[SFML 2.0] - Rysowanie kwadratu
» 2012-07-03 17:47:59
Witam.

Jestem tutaj nowy, przerobilem  Kurs c++ oraz Kurs SFML. Moj problem polega na tym, ze gdy w SFML 2.0 probuje narysowac 10 kwadratow (oto kod:)

C/C++
for( int i = 0; i < 10; i++ )
{
    trawa[ i ].setPointCount( 4 );
    trawa[ i ].setPoint( 1, Vector2f( 0, 0 ) );
    trawa[ i ].setPoint( 2, Vector2f( 0, 50 ) );
    trawa[ i ].setPoint( 3, Vector2f( 50, 50 ) );
    trawa[ i ].setPoint( 4, Vector2f( 50, 0 ) );
    trawa[ i ].setFillColor( Color::Green );
    trawa[ i ].setOutlineColor( Color::Green );
    trawa[ i ].setPosition( i * 70, 600 );
}

a nastepnie je wyswietlic:

C/C++
for( int i = 0; i < 10; i++ )
{
    okno.draw( trawa[ i ] );
}

to zamiast 10 kwadratow wyswietla mi sie 10 trojkatow i po zamknieciu aplikacji wywala blad krytyczny. Po zmianie na

    
trawa[ i ].setPointCount( 3 );


i zakomentowaniu linijki

   
trawa[ i ].setPoint( 4, Vector2f( 50, 0 ) );


bledu krytycznego nie ma. Wie ktos moze, dlaczego? Dzieki za odpowiedzi.

PS. Wybaczcie polskich liter, ale pisze z klawiatury niemieckiej.

P-59483
DejaVu
» 2012-07-03 17:52:12
Błąd krytyczny nie jest raczej związany z Twoim problemem. Co do rysowania kwadratu to generalnie rzecz biorąc wszystko rysuje się trójkątami. Zapoznaj się dobrze z dokumentacją klasy której używasz do rysowania figur - tam zapewne będą informacje w jaki sposób są rysowane obiekty na scenie przy pomocy tej klasy.

/edit:
http://www.sfml-dev.org/documentation/2.0/classsf_1_1ConvexShape.php#details
Frazy, które należy wpisać w wyszukiwarkę google:

/edit:
W sumie to jakoś biednie w googlach na temat rysowania prostokąta za pomocą tej klasy :)
P-59484
michalo
Temat założony przez niniejszego użytkownika
» 2012-07-03 17:57:29
Dokumentację czytałem, lecz tam nie było nic o rysowaniu kwadratów. Czyli żeby narysować kwadrat, muszę narysować dwa przylegające trójkąty, tak? Nie da się inaczej?
P-59485
DejaVu
» 2012-07-03 17:58:08
sf::Shape::Rectangle (przynajmniej było w SFML 1.6)

/edit:
http://www.sfml-dev.org/documentation/2.0/classsf_1_1RectangleShape.php
P-59486
michalo
Temat założony przez niniejszego użytkownika
» 2012-07-03 18:33:35
Dobra, dzieki DejaVu, problem rozwiazany, pomogla klasa RectangleShape ;)
P-59488
« 1 »
  Strona 1 z 1