SHOW:
|
|
- or go back to the newest paste.
1 | void Engine::runEngine(sf::RenderWindow &window) | |
2 | { | |
3 | bool menu = false; | |
4 | ||
5 | // deklarujemy potrzebne do liczenia obiekty | |
6 | Clock clock; // do mierzenia czasu pomiędzy | |
7 | float time=0; // ile minęło czasu w ostatniej klatce od rozpoczęcia pomiaru | |
8 | ||
9 | while(!menu) | |
10 | - | if (Mouse::isButtonPressed(Mouse::Left)) |
10 | + | |
11 | - | player.idz(); |
11 | + | |
12 | sf::Vector2f mysz(Mouse::getPosition(window)); | |
13 | ||
14 | if (Mouse::isButtonPressed(Mouse::Left)) { | |
15 | /* jak pewnie wiesz, delta (m.in. w fizyce) to przyrost czegoś, delta time czyli przyrost czasu w danej klatce | |
16 | - | while(window.pollEvent(event)) |
16 | + | a więc musimy znać czas jaki minął do poprzedniej klatki i w tej, co liczymy następująco: |
17 | - | { |
17 | + | */ |
18 | - | if (event.type == Event::KeyReleased && event.key.code == Keyboard::Escape) |
18 | + | |
19 | - | menu = true; |
19 | + | float delta_time = clock.getElapsedTime().asSeconds() - time; |
20 | time = clock.getElapsedTime().asSeconds(); // aktualizujemy wartość na aktualny czas | |
21 | - | |
21 | + | player.idz(delta_time); // poruszamy się |
22 | - | player.update(mysz); |
22 | + | |
23 | - | |
23 | + | |
24 | - | window.clear(); |
24 | + | |
25 | - | window.draw(player); |
25 | + | |
26 | - | window.display(); |
26 | + | ... |
27 | } | |
28 | } | |
29 | ||
30 | ||
31 | void Player::idz(float delta) | |
32 | { | |
33 | ... | |
34 | // pamiętaj aby zwiększyć wartość speed do np 30 (w konstruktorze) inaczej postać będzie się słabo poruszała | |
35 | sprite.move(vx*speed*delta,vy*speed*delta); | |
36 | } |