gpt4 book ai didi

c# - 计算物体摩擦力时不准确

转载 作者:行者123 更新时间:2023-11-30 22:31:00 25 4
gpt4 key购买 nike

我正在学习如何在 C# 中使用 XNA 框架,但在计算基本形式的摩擦时,我遇到了一个基本错误。

计算摩擦力的代码是:

//Check X deadzone movement
if (Velocity.X < 0.1f && Velocity.X > -0.1f)
{
Velocity.X = 0f;
}
else
{
//Friction Calculation
if (Velocity.X > 0) Velocity.X -= Friction;
if (Velocity.X < 0) Velocity.X += Friction;
}

//Check Y deadzone movement
if (Velocity.Y < 0.1f && Velocity.Y > -0.1f)
{
Velocity.Y = 0f;
}
else
{
//Friction Calculation
if (Velocity.Y > 0) Velocity.Y -= Friction;
if (Velocity.Y < 0) Velocity.Y += Friction;
}

在哪里

Friction = 0.2f;`

我的问题是,每当我将播放器向右或向下(正方向)移动时,速度“保持不变”并且不受摩擦力的影响。它保持在 0.4 左右的恒定值,太高而不会受到我的死区的影响。这不会发生在负速度上。

这似乎是我逻辑上的一个简单错误,但我似乎无法弄清楚,有什么帮助吗?

最佳答案

您的逻辑将立即反转 .1 和 .2 之间的值的摩擦变化。尝试添加“else”,这样您就不会立即撤消更改。

if (Velocity.X > 0) Velocity.X -= Friction;
else if (Velocity.X < 0) Velocity.X += Friction;

关于c# - 计算物体摩擦力时不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9439732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com