View difference between Paste ID: nbPFH8rj and 8i8VTSD8
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
}