Wicon Temat założony przez niniejszego użytkownika |
» 2013-07-11 11:24:52 Dobra, jednak jestem ciemokiem. Nie miałem tych bibliotek skopiowanych do folderu release. Po wrzuceniu ich tam ładnie pięknie się kompiluje. Nie mniej jednak, kompilacja programu w trybie release nie pomogła w rozwiązaniu mojego problemu.
EDIT: Oczywiście w międzyczasie próbuję radzić sobie sam, ale nie mam żadnych mądrych pomysłów. Chciałem tylko dodać, że próbowałem również przesuwać pasek życia metodą "move" zamiast "setPosition", co również nie pomogło. |
|
pekfos |
» 2013-07-11 12:45:10 Podaj kod odpowiedzialny za ustawianie zmiennych x i y. |
|
Wicon Temat założony przez niniejszego użytkownika |
» 2013-07-11 12:54:08 if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::A ) { Player.setTexture( playerleft ); if( Kolizja_Left == false ) { HPRateOUT.move( - 4, 0 ); HPRateIN.move( - 4, 0 ); x -= 4; }; }; if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::D ) { Player.setTexture( playerright ); if( Kolizja_Right == false ) { HPRateOUT.move( + 4, 0 ); HPRateIN.move( + 4, 0 ); x += 4; }; }; if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::W ) { Player.setTexture( playerup ); if( Kolizja_Up == false ) { HPRateOUT.move( 0, - 4 ); HPRateIN.move( 0, - 4 ); y -= 4; }; }; if( zdarzenie.type == Event::KeyPressed && zdarzenie.key.code == Keyboard::S ) { Player.setTexture( playerdown ); if( Kolizja_Down == false ) { HPRateOUT.move( 0, + 4 ); HPRateIN.move( 0, + 4 ); y += 4; }; }; Tak samo jest zrobione poruszanie się za pomocą strzałek. No i dla paska życia jest tutaj zastosowana wcześniej wspomniana metoda move zamiast setposition. Dla ścisłości, gdy stosowałem setposition to zmianę pozycji ustawiałem nad pętlą ze zdarzeniami. |
|
pekfos |
» 2013-07-11 13:03:02 Spróbuj modyfikować tylko x/y, a pozycję sprajta ustawiać raz, przed wyświetleniem. |
|
Wicon Temat założony przez niniejszego użytkownika |
» 2013-07-11 13:11:52 Pozycja sprajta jest modyfikowana tylko raz. Muszę wiedzieć, w którą stronę go przesunąć, są 4 kierunki dlatego musiałem napisać zmianę pozycji 4 razy, ale pozycja jest modyfikowana 1 raz, bo przy każdym obiegu pętli gra może obsłużyć tylko 1 zdarzenie. Gdybym chciał zmianę pozycji w kodzie mieć napisaną tylko 1 raz dla wszystkich kierunków, to musiałbym użyć metody setposition, a pisałem już, że robiłem tak i pasek nadal drga. |
|
pekfos |
» 2013-07-11 13:18:48 Pokaż całą pętlę główną i opisz dokładnie te drgania. |
|
DejaVu |
» 2013-07-11 14:13:10 Zapewne wystarczy zrobić prostą pętlę, aby zaobserwować efekt drgania:
sprajt.move( 1, 0 ); okno.draw( sprajt );
Proponuję więc skompilować w trybie release oraz włączyć synchronizację pionową. Wiem, że kiedyś też miałem te objawy i nawet założyłem tutaj temat ale... chyba skutecznego rozwiązania na to nie znalazłem...
http://cpp0x.pl/forum/temat/?id=8000&p=3 |
|
Wicon Temat założony przez niniejszego użytkownika |
» 2013-07-11 14:34:18 Pekfos, cała pętla główna ma ponad 2000 linijek.
DejaVu, jeśli któreś z tych tematów mi pomogą to oczywiście podam linki żeby inni mieli. A jeśli nie i rozwiążę ten problem sam, to powiem co zrobiłem. A musi mi się udać, nie ma rzeczy niemożliwych i będę robił aż zacznie hulać.
Dzięki za całą dotychczasową pomoc. |
|
1 « 2 » 3 4 |