本文整理汇总了C#中Car.Steer方法的典型用法代码示例。如果您正苦于以下问题:C# Car.Steer方法的具体用法?C# Car.Steer怎么用?C# Car.Steer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Car
的用法示例。
在下文中一共展示了Car.Steer方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ParseCarsCollisionCheck
public void ParseCarsCollisionCheck(Car carA, Car carB, float deltaTime)
{
Random random = Game1.Singleton.Random;
if (carA.Rect.Intersects(carB.Rect))
{
#region Steering-Related
if (carB.X + carB.Width / 2 <= carA.X + carA.Width / 2)
{
//오른쪽 충돌
if (carB.Weight > carA.Weight)
{
//carB가 carA보다 무거움
carB.Steer(-20 * deltaTime);
carA.Steer(150 * deltaTime);
}
else if (carB.Weight < carA.Weight)
{
//carA가 carB보다 무거움
carB.Steer(20 * deltaTime);
carA.Steer(-150 * deltaTime);
}
else
{
//무게가 같음
carB.Steer(-150 * deltaTime);
carA.Steer(150 * deltaTime);
}
}
else
{
//왼쪽 충돌
if (carB.Weight > carA.Weight)
{
//carB가 carA보다 무거움
carB.Steer(20 * deltaTime);
carA.Steer(-150 * deltaTime);
}
else if (carB.Weight < carA.Weight)
{
//carA가 carB보다 무거움
carB.Steer(-20 * deltaTime);
carA.Steer(150 * deltaTime);
}
else
{
//무게가 같음
carB.Steer(150 * deltaTime);
carA.Steer(-150 * deltaTime);
}
}
#endregion
#region Accelerating-Related
if (carB.Y + carB.Height / 3 <= carA.Y + carA.Height - (carA.Height / 3))
{
//뒷쪽 충돌
carB.Accelerate(200 * deltaTime);
}
else if (carB.Y + carB.Height / 3 >= carA.Y + carA.Height - (carA.Height / 3))
{
//앞쪽 충돌
if (!carA.Panic)
{
carA.Panic = true;
carA.PanicRecoverTime = (float)random.NextDouble() + (float)random.NextDouble();
}
carB.Accelerate(-200 * deltaTime);
}
else
{
carB.Accelerate(-150 * deltaTime);
}
#endregion
}
}