本文整理汇总了C++中Input::GetKeyPress方法的典型用法代码示例。如果您正苦于以下问题:C++ Input::GetKeyPress方法的具体用法?C++ Input::GetKeyPress怎么用?C++ Input::GetKeyPress使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Input
的用法示例。
在下文中一共展示了Input::GetKeyPress方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleUpdate
void HugeObjectCount::HandleUpdate(StringHash eventType, VariantMap& eventData)
{
using namespace Update;
// Take the frame time step, which is stored as a float
float timeStep = eventData[P_TIMESTEP].GetFloat();
// Toggle animation with space
Input* input = GetSubsystem<Input>();
if (input->GetKeyPress(KEY_SPACE))
animate_ = !animate_;
// Toggle grouped / ungrouped mode
if (input->GetKeyPress('G'))
{
useGroups_ = !useGroups_;
CreateScene();
}
// Move the camera, scale movement with time step
MoveCamera(timeStep);
// Animate scene if enabled
if (animate_)
AnimateObjects(timeStep);
}
示例2: HandleUpdate
void Labyrinth::HandleUpdate(StringHash eventType, VariantMap& eventData)
{
using namespace Update;
// Take the frame time step, which is stored as a float
float timeStep = eventData[P_TIMESTEP].GetFloat();
// Toggle animation with space
Input* input = GetSubsystem<Input>();
if (input->GetKeyPress(KEY_SPACE))
animate_ = !animate_;
// Toggle grouped / ungrouped mode
// TODO CHECK treba dorobit tak aby vedel dat bloky do jednej grupy, a tiez treba zistit ako to funguje ???
if (input->GetKeyPress('G'))
{
useGroups_ = !useGroups_;
CreateScene();
}
if (input->GetKeyPress(KEY_SPACE))
{
drawDebug_ = !drawDebug_;
//scene_->GetComponent<PhysicsWorld>()->DrawDebugGeometry(true);
}
// CAMERA Move the camera, scale movement with time step
MoveCamera(timeStep);
}
示例3: HandleUpdate
void CharacterDemo::HandleUpdate(StringHash eventType, VariantMap& eventData)
{
using namespace Update;
float timeStep = eventData[P_TIMESTEP].GetFloat();
Input* input = GetSubsystem<Input>();
if (character_)
{
UI* ui = GetSubsystem<UI>();
// Get movement controls and assign them to the character logic component. If UI has a focused element, clear controls
if (!ui->GetFocusElement())
{
character_->controls_.Set(CTRL_FORWARD, input->GetKeyDown('W'));
character_->controls_.Set(CTRL_BACK, input->GetKeyDown('S'));
character_->controls_.Set(CTRL_LEFT, input->GetKeyDown('A'));
character_->controls_.Set(CTRL_RIGHT, input->GetKeyDown('D'));
character_->controls_.Set(CTRL_JUMP, input->GetKeyDown(KEY_SPACE));
// Add character yaw & pitch from the mouse motion
character_->controls_.yaw_ += (float)input->GetMouseMoveX() * YAW_SENSITIVITY;
character_->controls_.pitch_ += (float)input->GetMouseMoveY() * YAW_SENSITIVITY;
// Limit pitch
character_->controls_.pitch_ = Clamp(character_->controls_.pitch_, -80.0f, 80.0f);
// Switch between 1st and 3rd person
if (input->GetKeyPress('F'))
firstPerson_ = !firstPerson_;
// Check for loading / saving the scene
if (input->GetKeyPress(KEY_F5))
{
File saveFile(context_, GetSubsystem<FileSystem>()->GetProgramDir() + "Data/Scenes/CharacterDemo.xml",
FILE_WRITE);
scene_->SaveXML(saveFile);
}
if (input->GetKeyPress(KEY_F7))
{
File loadFile(context_, GetSubsystem<FileSystem>()->GetProgramDir() + "Data/Scenes/CharacterDemo.xml", FILE_READ);
scene_->LoadXML(loadFile);
// After loading we have to reacquire the weak pointer to the Character component, as it has been recreated
// Simply find the character's scene node by name as there's only one of them
Node* characterNode = scene_->GetChild("Jack", true);
if (characterNode)
character_ = characterNode->GetComponent<Character>();
}
}
else
character_->controls_.Set(CTRL_FORWARD | CTRL_BACK | CTRL_LEFT | CTRL_RIGHT | CTRL_JUMP, false);
// Set rotation already here so that it's updated every rendering frame instead of every physics frame
character_->GetNode()->SetRotation(Quaternion(character_->controls_.yaw_, Vector3::UP));
}
}
示例4: MoveCamera
void Physics::MoveCamera(float timeStep)
{
// Do not move if the UI has a focused element (the console)
if (GetSubsystem<UI>()->GetFocusElement())
return;
Input* input = GetSubsystem<Input>();
// Movement speed as world units per second
const float MOVE_SPEED = 20.0f;
// Mouse sensitivity as degrees per pixel
const float MOUSE_SENSITIVITY = 0.1f;
// Use this frame's mouse motion to adjust camera node yaw and pitch. Clamp the pitch between -90 and 90 degrees
IntVector2 mouseMove = input->GetMouseMove();
yaw_ += MOUSE_SENSITIVITY * mouseMove.x_;
pitch_ += MOUSE_SENSITIVITY * mouseMove.y_;
pitch_ = Clamp(pitch_, -90.0f, 90.0f);
// Construct new orientation for the camera scene node from yaw and pitch. Roll is fixed to zero
cameraNode_->SetRotation(Quaternion(pitch_, yaw_, 0.0f));
// Read WASD keys and move the camera scene node to the corresponding direction if they are pressed
if (input->GetKeyDown(KEY_W))
cameraNode_->Translate(Vector3::FORWARD * MOVE_SPEED * timeStep);
if (input->GetKeyDown(KEY_S))
cameraNode_->Translate(Vector3::BACK * MOVE_SPEED * timeStep);
if (input->GetKeyDown(KEY_A))
cameraNode_->Translate(Vector3::LEFT * MOVE_SPEED * timeStep);
if (input->GetKeyDown(KEY_D))
cameraNode_->Translate(Vector3::RIGHT * MOVE_SPEED * timeStep);
// "Shoot" a physics object with left mousebutton
if (input->GetMouseButtonPress(MOUSEB_LEFT))
SpawnObject();
// Check for loading/saving the scene. Save the scene to the file Data/Scenes/Physics.xml relative to the executable
// directory
if (input->GetKeyPress(KEY_F5))
{
File saveFile(context_, GetSubsystem<FileSystem>()->GetProgramDir() + "Data/Scenes/Physics.xml", FILE_WRITE);
scene_->SaveXML(saveFile);
}
if (input->GetKeyPress(KEY_F7))
{
File loadFile(context_, GetSubsystem<FileSystem>()->GetProgramDir() + "Data/Scenes/Physics.xml", FILE_READ);
scene_->LoadXML(loadFile);
}
// Toggle physics debug geometry with space
if (input->GetKeyPress(KEY_SPACE))
drawDebug_ = !drawDebug_;
}
示例5: Update
void DebugCameraController::Update(float timeStep)
{
// Do not move if the UI has a focused element
if (GetUI()->GetFocusElement())
return;
// Do not move if interacting with UI controls
if (GetSystemUI()->IsAnyItemActive())
return;
Input* input = GetInput();
// Movement speed as world units per second
float moveSpeed_ = speed_;
if (input->GetKeyDown(KEY_SHIFT))
{
moveSpeed_ *= 2;
if (input->GetKeyPress(KEY_KP_PLUS))
speed_ += 1.f;
else if (input->GetKeyPress(KEY_KP_MINUS))
speed_ -= 1.f;
}
if (input->GetMouseButtonDown(MOUSEB_RIGHT))
{
IntVector2 delta = input->GetMouseMove();
if (input->IsMouseVisible() && delta != IntVector2::ZERO)
input->SetMouseVisible(false);
auto yaw = GetNode()->GetRotation().EulerAngles().x_;
if ((yaw > -90.f && yaw < 90.f) || (yaw <= -90.f && delta.y_ > 0) || (yaw >= 90.f && delta.y_ < 0))
GetNode()->RotateAround(Vector3::ZERO, Quaternion(mouseSensitivity_ * delta.y_, Vector3::RIGHT), TS_LOCAL);
GetNode()->RotateAround(GetNode()->GetPosition(), Quaternion(mouseSensitivity_ * delta.x_, Vector3::UP), TS_WORLD);
}
else if (!input->IsMouseVisible())
input->SetMouseVisible(true);
// Read WASD keys and move the camera scene node to the corresponding direction if they are pressed
if (input->GetKeyDown(KEY_W))
GetNode()->Translate(Vector3::FORWARD * moveSpeed_ * timeStep);
if (input->GetKeyDown(KEY_S))
GetNode()->Translate(Vector3::BACK * moveSpeed_ * timeStep);
if (input->GetKeyDown(KEY_A))
GetNode()->Translate(Vector3::LEFT * moveSpeed_ * timeStep);
if (input->GetKeyDown(KEY_D))
GetNode()->Translate(Vector3::RIGHT * moveSpeed_ * timeStep);
}
示例6: HandleUpdate
void VehicleDemo::HandleUpdate(StringHash eventType, VariantMap& eventData)
{
using namespace Update;
float timeStep = eventData[P_TIMESTEP].GetFloat();
Input* input = GetSubsystem<Input>();
if (vehicle_)
{
UI* ui = GetSubsystem<UI>();
// Get movement controls and assign them to the vehicle component. If UI has a focused element, clear controls
if (!ui->GetFocusElement())
{
vehicle_->controls_.Set(CTRL_FORWARD, input->GetKeyDown('W'));
vehicle_->controls_.Set(CTRL_BACK, input->GetKeyDown('S'));
vehicle_->controls_.Set(CTRL_LEFT, input->GetKeyDown('A'));
vehicle_->controls_.Set(CTRL_RIGHT, input->GetKeyDown('D'));
// Add yaw & pitch from the mouse motion. Used only for the camera, does not affect motion
vehicle_->controls_.yaw_ += (float)input->GetMouseMoveX() * YAW_SENSITIVITY;
vehicle_->controls_.pitch_ += (float)input->GetMouseMoveY() * YAW_SENSITIVITY;
// Limit pitch
vehicle_->controls_.pitch_ = Clamp(vehicle_->controls_.pitch_, 0.0f, 80.0f);
// Check for loading / saving the scene
if (input->GetKeyPress(KEY_F5))
{
File saveFile(context_, GetSubsystem<FileSystem>()->GetProgramDir() + "Data/Scenes/VehicleDemo.xml",
FILE_WRITE);
scene_->SaveXML(saveFile);
}
if (input->GetKeyPress(KEY_F7))
{
File loadFile(context_, GetSubsystem<FileSystem>()->GetProgramDir() + "Data/Scenes/VehicleDemo.xml", FILE_READ);
scene_->LoadXML(loadFile);
// After loading we have to reacquire the weak pointer to the Vehicle component, as it has been recreated
// Simply find the vehicle's scene node by name as there's only one of them
Node* vehicleNode = scene_->GetChild("Vehicle", true);
if (vehicleNode)
vehicle_ = vehicleNode->GetComponent<Vehicle>();
}
}
else
vehicle_->controls_.Set(CTRL_FORWARD | CTRL_BACK | CTRL_LEFT | CTRL_RIGHT, false);
}
}
示例7: if
void DebugCameraController2D::Update(float timeStep)
{
// Do not move if the UI has a focused element
if (GetUI()->GetFocusElement())
return;
// Do not move if interacting with UI controls
if (GetSystemUI()->IsAnyItemActive())
return;
Input* input = GetInput();
// Movement speed as world units per second
float moveSpeed_ = speed_;
if (input->GetKeyDown(KEY_SHIFT))
{
moveSpeed_ *= 2;
if (input->GetKeyPress(KEY_KP_PLUS))
speed_ += 1.f;
else if (input->GetKeyPress(KEY_KP_MINUS))
speed_ -= 1.f;
}
if (input->GetMouseButtonDown(MOUSEB_RIGHT))
{
IntVector2 delta = input->GetMouseMove();
if (input->IsMouseVisible() && delta != IntVector2::ZERO)
input->SetMouseVisible(false);
GetNode()->Translate2D(Vector2{(float)delta.x_ * -1.f, (float)delta.y_} * moveSpeed_ * timeStep);
}
else if (!input->IsMouseVisible())
input->SetMouseVisible(true);
// Read WASD keys and move the camera scene node to the corresponding direction if they are pressed
if (input->GetKeyDown(KEY_W))
GetNode()->Translate(Vector3::UP * moveSpeed_ * timeStep);
if (input->GetKeyDown(KEY_S))
GetNode()->Translate(Vector3::DOWN * moveSpeed_ * timeStep);
if (input->GetKeyDown(KEY_A))
GetNode()->Translate(Vector3::LEFT * moveSpeed_ * timeStep);
if (input->GetKeyDown(KEY_D))
GetNode()->Translate(Vector3::RIGHT * moveSpeed_ * timeStep);
}
示例8: MoveCamera
void MultipleViewports::MoveCamera(float timeStep)
{
// Do not move if the UI has a focused element (the console)
if (GetSubsystem<UI>()->GetFocusElement())
return;
Input* input = GetSubsystem<Input>();
// Movement speed as world units per second
const float MOVE_SPEED = 20.0f;
// Mouse sensitivity as degrees per pixel
const float MOUSE_SENSITIVITY = 0.1f;
// Use this frame's mouse motion to adjust camera node yaw and pitch. Clamp the pitch between -90 and 90 degrees
IntVector2 mouseMove = input->GetMouseMove();
yaw_ += MOUSE_SENSITIVITY * mouseMove.x_;
pitch_ += MOUSE_SENSITIVITY * mouseMove.y_;
pitch_ = Clamp(pitch_, -90.0f, 90.0f);
// Construct new orientation for the camera scene node from yaw and pitch. Roll is fixed to zero
cameraNode_->SetRotation(Quaternion(pitch_, yaw_, 0.0f));
// Read WASD keys and move the camera scene node to the corresponding direction if they are pressed
if (input->GetKeyDown('W'))
cameraNode_->Translate(Vector3::FORWARD * MOVE_SPEED * timeStep);
if (input->GetKeyDown('S'))
cameraNode_->Translate(Vector3::BACK * MOVE_SPEED * timeStep);
if (input->GetKeyDown('A'))
cameraNode_->Translate(Vector3::LEFT * MOVE_SPEED * timeStep);
if (input->GetKeyDown('D'))
cameraNode_->Translate(Vector3::RIGHT * MOVE_SPEED * timeStep);
// Toggle post processing effects on the front viewport. Note that the rear viewport is unaffected
RenderPath* effectRenderPath = GetSubsystem<Renderer>()->GetViewport(0)->GetRenderPath();
if (input->GetKeyPress('B'))
effectRenderPath->ToggleEnabled("Bloom");
if (input->GetKeyPress('F'))
effectRenderPath->ToggleEnabled("FXAA2");
// Toggle debug geometry with space
if (input->GetKeyPress(KEY_SPACE))
drawDebug_ = !drawDebug_;
}
示例9: saveFile
void Urho2DConstraints::HandleUpdate(StringHash eventType, VariantMap& eventData)
{
using namespace Update;
// Take the frame time step, which is stored as a float
float timeStep = eventData[P_TIMESTEP].GetFloat();
// Move the camera, scale movement with time step
MoveCamera(timeStep);
Input* input = GetSubsystem<Input>();
// Toggle physics debug geometry with space
if (input->GetKeyPress(KEY_SPACE))
drawDebug_ = !drawDebug_;
// Save scene
if (input->GetKeyPress(KEY_F5))
{
File saveFile(context_, GetSubsystem<FileSystem>()->GetProgramDir() + "Data/Scenes/Constraints.xml", FILE_WRITE);
scene_->SaveXML(saveFile);
}
}
示例10: MoveCamera
void Navigation::MoveCamera(float timeStep)
{
// Right mouse button controls mouse cursor visibility: hide when pressed
UI* ui = GetSubsystem<UI>();
Input* input = GetSubsystem<Input>();
ui->GetCursor()->SetVisible(!input->GetMouseButtonDown(MOUSEB_RIGHT));
// Do not move if the UI has a focused element (the console)
if (ui->GetFocusElement())
return;
// Movement speed as world units per second
const float MOVE_SPEED = 20.0f;
// Mouse sensitivity as degrees per pixel
const float MOUSE_SENSITIVITY = 0.1f;
// Use this frame's mouse motion to adjust camera node yaw and pitch. Clamp the pitch between -90 and 90 degrees
// Only move the camera when the cursor is hidden
if (!ui->GetCursor()->IsVisible())
{
IntVector2 mouseMove = input->GetMouseMove();
yaw_ += MOUSE_SENSITIVITY * mouseMove.x_;
pitch_ += MOUSE_SENSITIVITY * mouseMove.y_;
pitch_ = Clamp(pitch_, -90.0f, 90.0f);
// Construct new orientation for the camera scene node from yaw and pitch. Roll is fixed to zero
cameraNode_->SetRotation(Quaternion(pitch_, yaw_, 0.0f));
}
// Read WASD keys and move the camera scene node to the corresponding direction if they are pressed
if (input->GetKeyDown('W'))
cameraNode_->TranslateRelative(Vector3::FORWARD * MOVE_SPEED * timeStep);
if (input->GetKeyDown('S'))
cameraNode_->TranslateRelative(Vector3::BACK * MOVE_SPEED * timeStep);
if (input->GetKeyDown('A'))
cameraNode_->TranslateRelative(Vector3::LEFT * MOVE_SPEED * timeStep);
if (input->GetKeyDown('D'))
cameraNode_->TranslateRelative(Vector3::RIGHT * MOVE_SPEED * timeStep);
// Set route start/endpoint with left mouse button, recalculate route if applicable
if (input->GetMouseButtonPress(MOUSEB_LEFT))
SetPathPoint();
// Add or remove objects with middle mouse button, then rebuild navigation mesh partially
if (input->GetMouseButtonPress(MOUSEB_MIDDLE))
AddOrRemoveObject();
// Toggle debug geometry with space
if (input->GetKeyPress(KEY_SPACE))
drawDebug_ = !drawDebug_;
}
示例11: HandleUpdate
void DynamicGeometry::HandleUpdate(StringHash eventType, VariantMap& eventData)
{
using namespace Update;
// Take the frame time step, which is stored as a float
float timeStep = eventData[P_TIMESTEP].GetFloat();
// Toggle animation with space
Input* input = GetSubsystem<Input>();
if (input->GetKeyPress(KEY_SPACE))
animate_ = !animate_;
// Move the camera, scale movement with time step
MoveCamera(timeStep);
// Animate objects' vertex data if enabled
if (animate_)
AnimateObjects(timeStep);
}
示例12: MoveCamera
void Sample::MoveCamera(float timeStep)
{
// Do not move if the UI has a focused element (the console)
if (GetSubsystem<UI>()->GetFocusElement())
return;
Input* input = GetSubsystem<Input>();
// Movement speed as world units per second
float MOVE_SPEED = 20.0f;
if (input->GetKeyDown(KEY_SHIFT))
{
MOVE_SPEED = 60.0f;
}
// Mouse sensitivity as degrees per pixel
const float MOUSE_SENSITIVITY = 0.1f;
// Use this frame's mouse motion to adjust camera node yaw and pitch. Clamp the pitch between -90 and 90 degrees
IntVector2 mouseMove = input->GetMouseMove();
yaw_ += MOUSE_SENSITIVITY * mouseMove.x_;
pitch_ += MOUSE_SENSITIVITY * mouseMove.y_;
pitch_ = Clamp(pitch_, -90.0f, 90.0f);
// Construct new orientation for the camera scene node from yaw and pitch. Roll is fixed to zero
camNode_->SetRotation(Quaternion(pitch_, yaw_, 0.0f));
// Read WASD keys and move the camera scene node to the corresponding direction if they are pressed
if (input->GetKeyDown('W'))
camNode_->Translate(Vector3::FORWARD * MOVE_SPEED * timeStep);
if (input->GetKeyDown('S'))
camNode_->Translate(Vector3::BACK * MOVE_SPEED * timeStep);
if (input->GetKeyDown('A'))
camNode_->Translate(Vector3::LEFT * MOVE_SPEED * timeStep);
if (input->GetKeyDown('D'))
camNode_->Translate(Vector3::RIGHT * MOVE_SPEED * timeStep);
// Toggle debug geometry with space
if (input->GetKeyPress(KEY_SPACE))
drawDebug_ = !drawDebug_;
}
示例13: HandleUpdate
void UIDrag::HandleUpdate(StringHash eventType, VariantMap& eventData)
{
UI* ui = GetSubsystem<UI>();
UIElement* root = ui->GetRoot();
Input* input = GetSubsystem<Input>();
unsigned n = input->GetNumTouches();
for (unsigned i = 0; i < n; i++)
{
Text* t = (Text*)root->GetChild("Touch " + String(i));
TouchState* ts = input->GetTouch(i);
t->SetText("Touch " + String(ts->touchID_));
IntVector2 pos = ts->position_;
pos.y_ -= 30;
t->SetPosition(pos);
t->SetVisible(true);
}
for (unsigned i = n; i < 10; i++)
{
Text* t = (Text*)root->GetChild("Touch " + String(i));
t->SetVisible(false);
}
if (input->GetKeyPress(KEY_SPACE))
{
PODVector<UIElement*> elements;
root->GetChildrenWithTag(elements, "SomeTag");
for (PODVector<UIElement*>::ConstIterator i = elements.Begin(); i != elements.End(); ++i)
{
UIElement* element = *i;
element->SetVisible(!element->IsVisible());
}
}
}
示例14: HandleUpdate
void VehicleDemo::HandleUpdate(StringHash eventType, VariantMap& eventData)
{
using namespace Update;
Input* input = GetSubsystem<Input>();
if (vehicle_)
{
UI* ui = GetSubsystem<UI>();
// Get movement controls and assign them to the vehicle component. If UI has a focused element, clear controls
if (!ui->GetFocusElement())
{
vehicle_->controls_.Set(CTRL_FORWARD, input->GetKeyDown(KEY_W));
vehicle_->controls_.Set(CTRL_BACK, input->GetKeyDown(KEY_S));
vehicle_->controls_.Set(CTRL_LEFT, input->GetKeyDown(KEY_A));
vehicle_->controls_.Set(CTRL_RIGHT, input->GetKeyDown(KEY_D));
// Add yaw & pitch from the mouse motion or touch input. Used only for the camera, does not affect motion
if (touchEnabled_)
{
for (unsigned i = 0; i < input->GetNumTouches(); ++i)
{
TouchState* state = input->GetTouch(i);
if (!state->touchedElement_) // Touch on empty space
{
Camera* camera = cameraNode_->GetComponent<Camera>();
if (!camera)
return;
Graphics* graphics = GetSubsystem<Graphics>();
vehicle_->controls_.yaw_ += TOUCH_SENSITIVITY * camera->GetFov() / graphics->GetHeight() * state->delta_.x_;
vehicle_->controls_.pitch_ += TOUCH_SENSITIVITY * camera->GetFov() / graphics->GetHeight() * state->delta_.y_;
}
}
}
else
{
vehicle_->controls_.yaw_ += (float)input->GetMouseMoveX() * YAW_SENSITIVITY;
vehicle_->controls_.pitch_ += (float)input->GetMouseMoveY() * YAW_SENSITIVITY;
}
// Limit pitch
vehicle_->controls_.pitch_ = Clamp(vehicle_->controls_.pitch_, 0.0f, 80.0f);
// Check for loading / saving the scene
if (input->GetKeyPress(KEY_F5))
{
File saveFile(context_, GetSubsystem<FileSystem>()->GetProgramDir() + "Data/Scenes/VehicleDemo.xml",
FILE_WRITE);
scene_->SaveXML(saveFile);
}
if (input->GetKeyPress(KEY_F7))
{
File loadFile(context_, GetSubsystem<FileSystem>()->GetProgramDir() + "Data/Scenes/VehicleDemo.xml", FILE_READ);
scene_->LoadXML(loadFile);
// After loading we have to reacquire the weak pointer to the Vehicle component, as it has been recreated
// Simply find the vehicle's scene node by name as there's only one of them
Node* vehicleNode = scene_->GetChild("Vehicle", true);
if (vehicleNode)
vehicle_ = vehicleNode->GetComponent<Vehicle>();
}
}
else
vehicle_->controls_.Set(CTRL_FORWARD | CTRL_BACK | CTRL_LEFT | CTRL_RIGHT, false);
}
}
示例15: ProcessInput
void SoccerInput::ProcessInput(const Input& input)
{
switch (input.mId)
{
default:
return;
case CmdPlayerSelectMode:
if (input.GetKeyPress())
{
mCmdMode = CmdModePlayerSelect;
}
break;
case CmdSelectNextAgent:
if (input.GetKeyPress())
{
SendCommand("(select)");
}
break;
case CmdResetSelection:
if (input.GetKeyPress())
{
SendCommand("(select (unum -1))");
}
break;
case CmdKillSelection:
if (input.GetKeyPress())
{
SendCommand("(kill)");
}
break;
case CmdReposSelection:
if (input.GetKeyPress())
{
SendCommand("(repos)");
}
break;
case CmdKickOff:
if (input.GetKeyPress())
{
SendCommand("(kickOff Left)");
}
break;
case CmdKickOffRight:
if (input.GetKeyPress())
{
SendCommand("(kickOff Right)");
}
break;
case CmdMoveAgent:
if (input.GetKeyPress())
{
SendCommand("(agent)");
}
break;
case CmdDropBall:
if (input.GetKeyPress())
{
SendCommand("(dropBall)");
}
break;
case CmdShootBall:
if (input.GetKeyPress())
{
//SendCommand("(ball (vel -4.0 0.0 2.0))");
}
break;
case CmdMoveBall:
if (input.GetKeyPress())
{
//SendCommand("(ball (pos -42.0 0.0 0.3))");
}
break;
case CmdOne:
case CmdTwo:
case CmdThree:
case CmdFour:
case CmdFive:
case CmdSix:
case CmdSeven:
case CmdEight:
case CmdNine:
case CmdZero:
if (input.GetKeyPress())
{
if (mCmdMode == CmdModeDefault)
SelectCamera(input.mId - CmdOne);
else
{
ostringstream u_ss;
u_ss << "(select (unum " << (input.mId - CmdOne + 1) << ") ";
if (mCmdMode == CmdModeLeftPlayerSelect)
{
//.........这里部分代码省略.........