Witam, czytjąc kurs stronie cpp0x.pl 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()
{
//ustawianie tekstury
sf::Texture tekstura;
sf::Texture gracz;
//wczytanie tekstur
tekstura.loadFromFile("tekstura.png");
gracz.loadFromFile("gracz.png");
//ustawianie sprite (obrazka)
sf::Sprite loch;
sf::Sprite player;
//nadanie tekstur obrazkowi
loch.setTexture(tekstura);
player.setTexture(gracz);
//tworzy okno
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();
//gdzie.co robi(co rysuje);
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;
}