C++ で小さなゲームを作成していますが、分岐を最適化する方法を知りたいと思っています。このコードを見てください:
if (
isUpPressed ||
isDownPressed ||
isLeftPressed ||
isRightPressed ||
isSpacePressed
) {
if (isUpPressed)
state |= State::MoveUp;
if (isDownPressed)
state |= State::MoveDown;
if (isLeftPressed)
state |= State::MoveLeft;
if (isRightPressed)
state |= State::MoveRight;
if (isSpacePressed)
state |= State::Jump);
} else
state = State::Still;
私が達成したいのは、上、下、左、右、またはスペースが押されstate
た場合、適切な値に設定することです。これらの条件のいずれにも当てはまらない場合は、状態を に設定しState::Still
ます。私のコードは機能しますが、間違っているように感じます。もっと良い方法があるはずです。私の質問は次のとおりです。指定されたすべて
の条件が失敗した場合にのみブロックを実行し、1 つまたは複数が true の場合にこれらの条件のそれぞれに固有のブロックを実行する方法です。ネストされた演算子や多くの演算子を使用する必要はありません。if
||