Guten Tag
Ich habe ein Problem mit dem Hüpfen in SFML.
Der Spieler springt aber wenn ich die Taste loslasse ist er direkt unten.(setPosition)
Ich möchte aber gerne dass der Spieler wieder runterkommt und nicht direkt unten ist.
Hat jemand da eine Lösung?
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
const float gravity = 1.f;
int groundHeight = 1100;
sf::Vector2f velocity(sf::Vector2f(0, 0));
float jumpSpeed = 0.1f, moveSpeed = 0.1f;
// if player press D
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::D))
{
velocity.x = moveSpeed;
}
// if player press A
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::A))
{
velocity.x = -moveSpeed;
}
// if player press Space
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Space))
{
velocity.y = -jumpSpeed;
}
// if position of player bigger than groundheight
if (pPlayerSprite->getPosition().y - 153 > groundHeight || velocity.y < 0){
velocity.y += gravity; // jump
}
else
{
pPlayerSprite->setPosition(pPlayerSprite->getPosition().x, groundHeight - 153);
velocity.y = 0;
}
pPlayerSprite->move(velocity.x, -velocity.y); // move Player
|