[SFML 2.0] Problem z przesuwaniem obiektu
Ostatnio zmodyfikowano 2012-12-03 22:17
Sewo Temat założony przez niniejszego użytkownika |
[SFML 2.0] Problem z przesuwaniem obiektu » 2012-12-03 19:23:34 Witam. Mam problem z poruszaniem obiektu. Korzystam z kursu na stronie. Jest on na 1.6 ale chyba powinno działać po małych zmianach. Wszystko idzie dobrze, dopóki nie dodam for( VObiektyT::iterator i = vObiekty.begin(); i < vObiekty.end(); ++i ) i->aktualizujPolozenie();
Obiekty uciekają mi poza okienko. Nie mam pojęcia co jest nie tak. |
|
Mrovqa |
» 2012-12-03 20:29:12 Nie masz zielonego pojęcia co piszesz albo niezbyt oczekujesz pomocy z tego forum. Wiesz co robi ten kod, który nam zamieściłeś? Myślisz, że ktokolwiek Ci na podstawie tego kodu stwierdzi gdzie masz błąd? Daj kod, ale ten odpowiedzialny za to, co działa źle. |
|
Sewo Temat założony przez niniejszego użytkownika |
» 2012-12-03 21:43:08 int main() { sf::CircleShape kolo; kolo.setRadius( 5 ); sf::RenderWindow oknoAplikacji( sf::VideoMode( 800, 600, 32 ), "Wytwarzanie Gier 2D, C++ | http://cpp0x.pl" ); typedef std::vector < RObiekt > VObiektyT; VObiektyT vObiekty; vObiekty.push_back( RObiekt( 50, 50, 1.0 ) ); while( oknoAplikacji.isOpen() ) { sf::Event zdarzenie; while( oknoAplikacji.pollEvent( zdarzenie ) ) { if( zdarzenie.type == sf::Event::Closed ) oknoAplikacji.close(); if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Escape ) oknoAplikacji.close(); } for( VObiektyT::iterator i = vObiekty.begin(); i < vObiekty.end(); ++i ) i->aktualizujPolozenie(); oknoAplikacji.clear(); for( VObiektyT::iterator i = vObiekty.begin(); i != vObiekty.end(); ++i ) { kolo.setPosition( i->x, i->y ); } oknoAplikacji.draw( kolo ); oknoAplikacji.display(); } return 0; }[ cpp / ] Resztę mam tak samo jak w przykładzie. |
|
Mrovqa |
» 2012-12-03 21:49:44 Widać nawet nie wiesz, który kod wylicza pozycję obiektu... Szkoda, że nie rozumiesz tego co piszesz. Btw chodzi Ci o to, że część koła wychodzi poza okno? kolo.setPosition( i->x, i->y ); to jest ustalenie pozycji środka koła. |
|
Sewo Temat założony przez niniejszego użytkownika |
» 2012-12-03 22:12:01 To mógłbyś wytłumaczyć, jak działa for( VObiektyT::iterator i = vObiekty.begin(); i < vObiekty.end(); ++i ) i->aktualizujPolozenie();
for( VObiektyT::iterator i = vObiekty.begin(); i != vObiekty.end(); ++i ) { kolo.setPosition( i->x, i->y ); } oknoAplikacji.draw( kolo );
To wyświetla mi koło w punkcie x,y. a aktualizujPolozenie()? Kurde, przepraszam za być może niski poziom pytań, ale naprawdę chciałbym się tego nauczyć. |
|
Mrovqa |
» 2012-12-03 22:17:11 To popatrz do tej metody, co ona robi. Zanim weźmiesz się za pisanie gier (w bibliotece zgodnej z OOP) to najpierw naucz się OOP. Poczytaj o klasach, metodach, ewentualnie o dziedziczeniu. Nie ma sensu Ci czegoś tłumaczyć, czego pewnie i tak nie zrozumiesz. |
|
« 1 » |