
Vector2f lissajousCurve(float t)
{
return Vector2f(sin(t), cos(2 * t));
}
//...
if (playerWalking)
t += 10.0f * delta;
else
t += 1.0f * delta;
if (t > 2 * PI)
t = 0.0f;
Vector2f p = lissajousCurve(t) / 10.0f;
weapon.localPos = Vector3f(p.x, p.y, 0.0f);