C++ Nieprawidłowy ruch SFML
Ostatnio zmodyfikowano 2019-07-07 20:02
R0ut4 Temat założony przez niniejszego użytkownika |
C++ Nieprawidłowy ruch SFML » 2019-07-07 18:43:17 Witam, czytjąc kurs na tej stronie chciałem pójść nieco dalej, jednak napotkałem problem z ruchem "gracza". Ruch jest o 5 pikseli jednak po puszczeniu klawisza "gracz" wraca na miejsce "spawnu". Poniżej zamieszczam kod: #include <SFML/Window.hpp> #include <SFML/Graphics.hpp>
void setPosition( float x, float y ); void move( float X, float Y );
int main() { sf::Texture tekstura; sf::Texture gracz; tekstura.loadFromFile( "tekstura.png" ); gracz.loadFromFile( "gracz.png" ); sf::Sprite loch; sf::Sprite player; loch.setTexture( tekstura ); player.setTexture( gracz ); sf::RenderWindow okno( sf::VideoMode( 800, 600, 32 ), "KURS" ); okno.setFramerateLimit( 30 ); while( okno.isOpen() ) { sf::Event zdarzenie; while( okno.pollEvent( zdarzenie ) ) { if( zdarzenie.type == sf::Event::Closed ) { okno.close(); } } okno.clear(); okno.draw( loch ); okno.draw( player ); player.setPosition( 110, 105 ); if( sf::Keyboard::isKeyPressed( sf::Keyboard::Right ) ) { player.move( 5, 0 ); } else if( sf::Keyboard::isKeyPressed( sf::Keyboard::Left ) ) { player.move( - 5, 0 ); } else if( sf::Keyboard::isKeyPressed( sf::Keyboard::Up ) ) { player.move( 0, - 5 ); } else if( sf::Keyboard::isKeyPressed( sf::Keyboard::Down ) ) { player.move( 0, 5 ); } okno.display(); } return 0; }
|
|
pekfos |
» 2019-07-07 20:02:20 Nigdzie się nie ruszy, bo w pętli ciągle resetujesz pozycję. |
|
« 1 » |