DanielSC Temat założony przez niniejszego użytkownika |
[sfml]Jak zwrócić aktualna pozycje wierzchołków? » 2012-12-30 20:34:40 Jak można by zwrócić aktualna pozycje wierzchołków jak bym ruszył kwadrat2 #include <SFML/Graphics.hpp> #include <iostream> using namespace sf; using namespace std; int main() { RenderWindow Aplikacja( VideoMode( 400, 400, 32 ), "Aplikacja", Style::Fullscreen ); Shape kwadrat1, kwadrat2; int poz1 = 100, poz2 = 200; kwadrat1.AddPoint( 400, 400, Color::Red, Color::Red ); kwadrat1.AddPoint( 400, 800, Color::Red, Color::Red ); kwadrat1.AddPoint( 800, 800, Color::Red, Color::Red ); kwadrat1.AddPoint( 800, 400, Color::Red, Color::Red ); kwadrat2.AddPoint( poz1, poz1, Color::Green, Color::Green ); kwadrat2.AddPoint( poz1, poz2, Color::Green, Color::Green ); kwadrat2.AddPoint( poz2, poz2, Color::Green, Color::Green ); kwadrat2.AddPoint( poz2, poz1, Color::Green, Color::Green ); while( Aplikacja.IsOpened() ) { Event zdarzenie; while( Aplikacja.GetEvent( zdarzenie ) ) { if( zdarzenie.Type == Event::Closed ) Aplikacja.Close(); if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::Escape ) Aplikacja.Close(); } const Input & sterowanie = Aplikacja.GetInput(); if( sterowanie.IsKeyDown( Key::Left ) ) kwadrat2.Move( - 0.2, 0 ); if( sterowanie.IsKeyDown( Key::Right ) ) kwadrat2.Move( 0.2, 0 ); if( sterowanie.IsKeyDown( Key::Down ) ) kwadrat2.Move( 0, 0.2 ); if( sterowanie.IsKeyDown( Key::Up ) ) kwadrat2.Move( 0, - 0.2 ); Aplikacja.Clear( Color( 0, 0, 0 ) ); Aplikacja.Draw( kwadrat1 ); Aplikacja.Draw( kwadrat2 ); Aplikacja.Display(); } return 0; }
|
|
Nevea |
» 2012-12-30 20:53:02 #include <SFML/Graphics.hpp> #include <iostream> using namespace sf; using namespace std; int main() { RenderWindow Aplikacja( VideoMode( 400, 400, 32 ), "Aplikacja", Style::Fullscreen ); Shape kwadrat1, kwadrat2; int poz1 = 100, poz2 = 200; float kwadrat_x = 100, kwadrat_y = 200; kwadrat1.AddPoint( 400, 400, Color::Red, Color::Red ); kwadrat1.AddPoint( 400, 800, Color::Red, Color::Red ); kwadrat1.AddPoint( 800, 800, Color::Red, Color::Red ); kwadrat1.AddPoint( 800, 400, Color::Red, Color::Red ); kwadrat2.AddPoint( poz1, poz1, Color::Green, Color::Green ); kwadrat2.AddPoint( poz1, poz2, Color::Green, Color::Green ); kwadrat2.AddPoint( poz2, poz2, Color::Green, Color::Green ); kwadrat2.AddPoint( poz2, poz1, Color::Green, Color::Green ); while( Aplikacja.IsOpened() ) { Event zdarzenie; while( Aplikacja.GetEvent( zdarzenie ) ) { if( zdarzenie.Type == Event::Closed ) Aplikacja.Close(); if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::Escape ) Aplikacja.Close(); } const Input & sterowanie = Aplikacja.GetInput(); if( sterowanie.IsKeyDown( Key::Left ) ) { kwadrat2.Move( - 0.2, 0 ); kwadrat_x -= 0.2; } if( sterowanie.IsKeyDown( Key::Right ) ) { kwadrat2.Move( 0.2, 0 ); kwadrat_x += 0.2; } if( sterowanie.IsKeyDown( Key::Down ) ) { kwadrat2.Move( 0, 0.2 ); kwadrat_y += 0.2; } if( sterowanie.IsKeyDown( Key::Up ) ) { kwadrat2.Move( 0, - 0.2 ); kwadrat_y -= 0.2; } cout << "X: " << kwadrat_x << endl; cout << "Y: " << kwadrat_y << endl; Aplikacja.Clear( Color( 0, 0, 0 ) ); Aplikacja.Draw( kwadrat1 ); Aplikacja.Draw( kwadrat2 ); Aplikacja.Display(); } return 0; }
Zobacz czy tak zadziała, i czy o to chodziło. |
|
DanielSC Temat założony przez niniejszego użytkownika |
» 2012-12-30 20:59:13 Nom mniej wiecej o to ale czy nie ma jakies klasy zeby zwracala polozenie wierzcholkow kwadratu ?
|
|
DejaVu |
» 2012-12-30 21:21:42 Próbowałeś zapoznać się z dokumentacją klasy sf::Shape? |
|
DanielSC Temat założony przez niniejszego użytkownika |
» 2012-12-31 15:52:37 tak ale jest ona dla mnie troche niezrzumiała
|
|
DejaVu |
» 2012-12-31 16:00:18 To dla wprawy przeczytaj ze zrozumieniem opis każdej metody w klasie sf::Shape. Umiejętność czytania dokumentacji ze zrozumieniem jest chyba najważniejszym elementem dla każdego programisty. |
|
DanielSC Temat założony przez niniejszego użytkownika |
» 2012-12-31 16:53:31 a klasa GetPointPosition zdala by sie? @ Wymajstrowałem coś takiego : kwadrat2.GetPointPosition( 1 ); i chciałbym wypisac to do konsoli cout << kwadrat2.GetPointPosition( 1 ) aby sprawdzić jaką przyjmuje wartość ale się dzieje coś takiego: std::char_traits<char>] e:\cod blocks\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/ostream.tcc:119: note: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::char_traits<char>] Process terminated with status 1 (0 minutes, 0 seconds) 1 errors, 0 warnings |
|
DejaVu |
» 2012-12-31 17:20:18 No... to teraz jeszcze sprawdź jaki typ zwraca wspomniana metoda i jesteś w domu. |
|
« 1 » 2 |