|
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
31
32
33
34
35
36
37
38
|
// Method to handle the input
void Player::HandleInput ( )
{
if ( this->Application->GetWindow ( )->GetInput ( ).IsKeyDown ( sf::Key::W ) && this->Speed <= Ship::GetTopSpeed ( ) * this->Application->GetWindow ( )->GetFrameTime ( ) )
{
Speed += Ship::GetAcceleration ( ) * this->Application->GetWindow ( )->GetFrameTime ( ) ;
this->CompleteZoomFactor = 1 - 1 * this->Application->GetWindow ( )->GetFrameTime ( ) ;
}
if ( this->Application->GetWindow ( )->GetInput ( ).IsKeyDown ( sf::Key::S ) && this->Speed > 0.0f )
{
Speed -= Ship::GetSpeedBrake ( ) * this->Application->GetWindow ( )->GetFrameTime ( ) ;
this->CompleteZoomFactor = 1 + 1 * this->Application->GetWindow ( )->GetFrameTime ( ) ;
}
if ( this->Application->GetWindow ( )->GetInput ( ).IsKeyDown ( sf::Key::A ) && this->Speed >= Ship::GetRotationSpeedProportion ( ) * this->Application->GetWindow ( )->GetFrameTime ( ) )
this->Sprite.Rotate ( Ship::GetLeftRotation ( ) * this->Application->GetWindow ( )->GetFrameTime ( ) ) ;
if ( this->Application->GetWindow ( )->GetInput ( ).IsKeyDown ( sf::Key::D ) && this->Speed >= Ship::GetRotationSpeedProportion ( ) * this->Application->GetWindow ( )->GetFrameTime ( ) )
this->Sprite.Rotate ( Ship::GetRightRotation ( ) * -1 * this->Application->GetWindow ( )->GetFrameTime ( ) ) ;
}
// Method to update the position and rotation
void Player::Update ( )
{
this->Camera.Zoom ( this->CompleteZoomFactor ) ;
this->CompleteZoomFactor = 0.0f ;
/*if ( this->Speed > 0 )
{
this->Speed -= Ship::GetFriction ( ) * this->Application->GetWindow ( )->GetFrameTime ( ) ;
this
}
if ( this->Speed < 0 )
this->Speed = 0.0f ;*/
float Radian = this->Sprite.GetRotation ( ) * 3.14159265f / 180.f ;
sf::Vector2f Position ( std::sin ( Radian ) * Speed , std::cos ( Radian ) * Speed ) ;
this->Camera.Move ( Position ) ;
this->Sprite.Move ( Position ) ;
this->Application->GetWindow ( )->SetView ( this->Camera ) ;
//this->Application->GetWindow ( )->SetView ( this->Application->GetWindow ( )->GetDefaultView ( ) ) ;
}
|
Danke schonmal.
Doch leider gibt es ein Problem.
Wenn ich Gas gebe ( W ) dann zoomt er raus.
Gut...
Doch wenn ich Bremese zoomt er zwar wieder ran ,a llerdings nicht in die Ursprungsposition.
Vorallem , wie soll ich das später mit der Reibung machen?
Das miteinbziehen der Reibung hab ich nun mal mit /**/ ausgeklammert.
Hoffe ich ihr könnt mir helfen.
MfG Stazer