状況に応じて機能する代入演算子があるようです。x と y の 2 つの float を含む Vector2 クラスがあります。operator= メソッドは次のとおりです。
Vector2 Vector2::operator=(const Vector2 &right)
{
Vector2 result;
result.x = right.x;
result.y = right.y;
return result;
}
私が持っているエンティティの onMove メソッド内:
Vector2 newPosition = position + (speed * getSpeedFactor());
if (posValid(newPosition))
{
position.x = newPosition.x;
position.y = newPosition.y;
//position = newPosition;
}
speedFactor はフレームレートに依存し、posValid はポイントが壁などにあるかどうかのチェックです。位置と速度も Vector2 です。最初の課題:
Vector2 newPosition = position + (speed * getSpeedFactor());
動作し、コードをそのまま使用すると、期待/意図した動作が得られますが、
position = newPosition;
単独でも、.x & .y 代入の前後でも効果はありません。