本文整理汇总了C++中InputState::printState方法的典型用法代码示例。如果您正苦于以下问题:C++ InputState::printState方法的具体用法?C++ InputState::printState怎么用?C++ InputState::printState使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类InputState
的用法示例。
在下文中一共展示了InputState::printState方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mergeInputState
//-----------------------------------------------------------------------------
//! @brief TODO enter a description
//! @remark
//-----------------------------------------------------------------------------
void InputState::mergeInputState(const InputState& input)
{
#ifdef _DEBUG
static bool test = false;
if (test)
{
printState();
}
#endif
for (auto standardInputAction : input.m_inputState)
{
//Does this action exist in the current input state?
InputStateMap::iterator it = std::find_if(m_inputState.begin(), m_inputState.end(), [standardInputAction](const StandardInputAction& inputAction) { return inputAction.getAction().getType() == standardInputAction.getAction().getType(); });
if (it != m_inputState.end())
{
float currentValue = it->getValue();
float inputValue = standardInputAction.getValue();
//Different signs, take the difference, need to figure out which one is bigger or negative
currentValue = currentValue + inputValue;
currentValue = math::clamp(currentValue, 0.0f, 1.0f);
#ifdef _DEBUG
if (test)
{
MSG_TRACE_CHANNEL("Input State", "During merging %s value will change to %f", InputSystem::m_actionNames[standardInputAction.getAction()], currentValue);
}
#endif
it->setValue(currentValue);
}
else
{
//Value is not found in the current input set so we should add it to it.
m_inputState.push_back(standardInputAction);
}
}
#ifdef _DEBUG
if (test)
{
printState();
input.printState();
}
#endif
}