瀏覽代碼

scale flyingvehicle ai pitch by the amount yaw forces it to roll

AzaezelX 9 月之前
父節點
當前提交
6efb3843f6
共有 1 個文件被更改,包括 7 次插入0 次删除
  1. 7 0
      Engine/source/T3D/AI/AIController.cpp

+ 7 - 0
Engine/source/T3D/AI/AIController.cpp

@@ -779,6 +779,13 @@ void AIFlyingVehicleControllerData::resolvePitch(AIController* obj, Point3F loca
    F32 lastPitch = fvo->getSteering().y;
    movePtr->pitch = 0.0f;
    F32 dotPitch = -mDot(up, toTarg);
+
+   FlyingVehicleData* db = static_cast<FlyingVehicleData*>(fvo->getDataBlock());
+
+   F32 rollAmt = mFabs(fvo->getThrottle()* movePtr->yaw * db->steeringRollForce);
+   dotPitch *= 1.0-(mClampF(rollAmt, 0.0,1.0)); // reduce pitch by how much we're rolling
+   dotPitch *= M_PI_F;
+
    if (mFabs(dotPitch) > 0.05f)
          movePtr->pitch = dotPitch - lastPitch;