本文整理汇总了C++中Input::KeyUpEvent方法的典型用法代码示例。如果您正苦于以下问题:C++ Input::KeyUpEvent方法的具体用法?C++ Input::KeyUpEvent怎么用?C++ Input::KeyUpEvent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Input
的用法示例。
在下文中一共展示了Input::KeyUpEvent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GameLoop
// Game Loop
void Game::GameLoop( )
{
Graphics graphics;
Input input;
SDL_Event sdlEvent;
m_Player = Player( graphics, 280.f, 252.f );
m_Level = Level( "Level1", Vector2( 100, 100 ), graphics );
float lastUpdateTime = SDL_GetTicks( );
while( true )
{
// Update input
input.Update( );
// SDL Events
if ( SDL_PollEvent( &sdlEvent ) )
{
// Key is down
if ( sdlEvent.type == SDL_KEYDOWN )
{
// is it repeating
if ( sdlEvent.key.repeat == 0 )
{
input.KeyDownEvent( sdlEvent );
}
}
// Key is released
else if ( sdlEvent.type == SDL_KEYUP )
{
input.KeyUpEvent( sdlEvent );
}
// User quits
else if ( sdlEvent.type == SDL_QUIT )
{
return;
}
}
// Quit if escape is pressed
if ( input.WasKeyPressed( SDL_SCANCODE_ESCAPE ) )
{
return;
}
// Player character
if ( input.IsKeyHeld( SDL_SCANCODE_LEFT ) || input.IsKeyHeld( SDL_SCANCODE_A ) )
{
m_Player.MovePlayer( Direction::LEFT );
}
else if ( input.IsKeyHeld( SDL_SCANCODE_RIGHT ) || input.IsKeyHeld( SDL_SCANCODE_D ) )
{
m_Player.MovePlayer( Direction::RIGHT );
}
else
{
m_Player.StopMoving( );
}
// Jump
if ( input.WasKeyPressed( SDL_SCANCODE_SPACE ) )
{
m_Player.Jump( );
}
// Debug
bDrawDebug = ( input.IsKeyHeld( SDL_SCANCODE_5 ) ) ? true : false;
const float CURRENT_TIME_IN_MS = SDL_GetTicks( );
float elapsedTimeInMS = CURRENT_TIME_IN_MS - lastUpdateTime;
lastUpdateTime = CURRENT_TIME_IN_MS;
Tick( std::fmin( elapsedTimeInMS, GameStats::MAX_FRAME_TIME ) );
Draw( graphics );
}
SDL_Quit( );
}