本文整理汇总了C++中CInput::IsKeyDown方法的典型用法代码示例。如果您正苦于以下问题:C++ CInput::IsKeyDown方法的具体用法?C++ CInput::IsKeyDown怎么用?C++ CInput::IsKeyDown使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CInput
的用法示例。
在下文中一共展示了CInput::IsKeyDown方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleGameInput
void HandleGameInput()
{
// Store the position of the player before we possibly move
POINT lastPosition = g_Player.GetLastPosition();
if(g_Input.IsKeyDown(VK_ESCAPE)) // If escape was pressed
g_Menu.BringUpMenu(); // Bring up the main menu
else if(g_Input.IsKeyDown(VK_UP)) // If up arrow key was pressed
g_Player.Move(kUp); // Move the character up
else if(g_Input.IsKeyDown(VK_DOWN)) // If down arrow key was pressed
g_Player.Move(kDown); // Move the character down
else if(g_Input.IsKeyDown(VK_LEFT)) // If left arrow key was pressed
g_Player.Move(kLeft); // Move the character left
else if(g_Input.IsKeyDown(VK_RIGHT)) // If right arrow key was pressed
g_Player.Move(kRight); // Move the character right
//////////// *** NEW *** ////////// *** NEW *** ///////////// *** NEW *** ////////////////////
// If we hit space let's toggle on and off the stats at the botton of the screen
else if(g_Input.IsKeyDown(VK_SPACE))
g_Map.ToggleStatsFlag();
//////////// *** NEW *** ////////// *** NEW *** ///////////// *** NEW *** ////////////////////
// Store the new current position of the player
POINT curPosition = g_Player.GetPosition();
// Check if the player moved by testing the current position against the last position
if(lastPosition.x != curPosition.x || lastPosition.y != curPosition.y)
{
// We want to draw the screen again if the character moved
g_Map.SetDrawFlag(true);
//////////// *** NEW *** ////////// *** NEW *** ///////////// *** NEW *** ////////////////////
// Since we need to pick up items, we need to check for them just like exits, etc.
g_Map.CheckForItem(curPosition.x, curPosition.y);
//////////// *** NEW *** ////////// *** NEW *** ///////////// *** NEW *** ////////////////////
// If we run into an NPC, we need to know so we can display dialog
g_Map.CheckForNpc(curPosition.x, curPosition.y);
// Set the previous position of the player
g_Player.SetLastPosition(curPosition);
// Here we check to see if the player moved into an exit. If so, exit!
g_Map.CheckForExit(curPosition.x, curPosition.y);
}
}
示例2: HandleGameInput
void HandleGameInput()
{
// This is not a function in our CInput class. We wanted the CInput class
// to be generic and not actually handle our game code, but just tell us what
// the user did. We can then make different function to handle the input
// for a given situation. We do this for character movement, save\load prompts,
// menus, etc...
// Let's get the key that the user pressed
int keyCode = g_Input.GetKeyCode();
// If we just hit a key from the keyboard, handle the input accordingly.
if(g_Input.IsKeyboardEvent() && g_Input.IsKeyDown())
{
if(keyCode == VK_ESCAPE) // If escape was pressed
exit(0); // Quit the game
else if(keyCode == VK_UP) // If up arrow key was pressed
g_Player.Move(kUp); // Move the character up
else if(keyCode == VK_DOWN) // If down arrow key was pressed
g_Player.Move(kDown); // Move the character down
else if(keyCode == VK_LEFT) // If left arrow key was pressed
g_Player.Move(kLeft); // Move the character left
else if(keyCode == VK_RIGHT) // If right arrow key was pressed
g_Player.Move(kRight); // Move the character right
// If the key pressed was for character movement, let's check for special tiles
if(keyCode == VK_RIGHT || keyCode == VK_LEFT || keyCode == VK_UP || keyCode == VK_DOWN)
{
// Here we check if the character stepped on an exit, if so .... exit.
g_Map.CheckForExit(g_Player.GetPosition().X, g_Player.GetPosition().Y);
// We want to draw the screen again if the character moved
g_Map.SetDrawFlag(true);
}
}
}
示例3: HandleGameInput
void HandleGameInput()
{
// Store the position of the player before we possibly move
POINT lastPosition = g_Player.GetLastPosition();
if(g_Input.IsKeyDown(VK_ESCAPE)) // If escape was pressed
g_Menu.BringUpMenu(); // Bring up the main menu
else if(g_Input.IsKeyDown(VK_UP)) // If up arrow key was pressed
g_Player.Move(kUp); // Move the character up
else if(g_Input.IsKeyDown(VK_DOWN)) // If down arrow key was pressed
g_Player.Move(kDown); // Move the character down
else if(g_Input.IsKeyDown(VK_LEFT)) // If left arrow key was pressed
g_Player.Move(kLeft); // Move the character left
else if(g_Input.IsKeyDown(VK_RIGHT)) // If right arrow key was pressed
g_Player.Move(kRight); // Move the character right
else if(g_Input.IsKeyDown(VK_SPACE)) // If space bar was pressed
g_Map.ToggleStatsFlag(); // Turn on and off the stats menu
// Store the new current position of the player
POINT curPosition = g_Player.GetPosition();
// Check if the player moved by testing the current position against the last position
if(lastPosition.x != curPosition.x || lastPosition.y != curPosition.y)
{
//////////// *** NEW *** ////////// *** NEW *** ///////////// *** NEW *** ////////////////////
// This function updates our party to take the last position of the
// party member in front of them. If we have 3 players in our party
// there will be a domino effect each time the main player moves. The
// second player will take the last step of the first player, and the
// third player will take the last step of the second player. They follow
// you every step of the way... What a loyal party :)
g_Player.MoveParty();
//////////// *** NEW *** ////////// *** NEW *** ///////////// *** NEW *** ////////////////////
// We want to draw the screen again if the character moved
g_Map.SetDrawFlag(true);
// Since we need to pick up items, we need to check for them just like exits, etc.
g_Map.CheckForItem(curPosition.x, curPosition.y);
// If we run into an NPC, we need to know so we can display dialog
g_Map.CheckForNpc(curPosition.x, curPosition.y);
//////////// *** NEW *** ////////// *** NEW *** ///////////// *** NEW *** ////////////////////
// Now that we have monsters moving around we need to check to see if we
// ran into them so we know when to attack. Notice that this takes no
// parameters. This is because we do a loop inside that goes through all
// of our party members and checks if they ran into the monster.
g_Map.CheckForMonster();
//////////// *** NEW *** ////////// *** NEW *** ///////////// *** NEW *** ////////////////////
// Set the previous position of the player
g_Player.SetLastPosition(curPosition);
// Here we check to see if the player moved into an exit. If so, exit!
g_Map.CheckForExit(curPosition.x, curPosition.y);
}
}