尝试使用跳墙 C# 从墙上弹起时出现问题
本文关键字:问题 | 更新日期: 2023-09-27 18:26:53
这是我的墙跳,它工作正常,我甚至可以让角色在墙上跳下时稍微从墙上弹回来,使用 SetHorizontalForce (10);
.所以我遇到的问题是,当我把SetHorizontalForce (-10);
从右墙上弹起来时,它使角色不能再爬上墙,而是从墙上弹回来,但没有获得更多的高度。这SetHorizontalForce (-10);
以某种方式影响角色的 y 轴吗?还是完全发生了其他事情?
public void WallJump()
{
if (State.HasCollisions) {
AddForce (new Vector2 (0, Parameters.JumpMagnitude));
_jumpIn = Parameters.JumpFrequency;
}
if (State.IsColidingLeft) {
SetHorizontalForce (10);
_dashIn = Para.DashFrequency;
}
else if (State.IsColidingRight){
SetHorizontalForce (-10);
_dashIn = Para.DashFrequency;
}
}
编辑:我被要求包括我的SetHorizontalForce,所以这里是:
private Vector2 _velocity;
public void SetHorizontalForce(float x)
{
_velocity.x = x;
}
编辑2:这就是我的_velocity的处理方式。
public void AddForce(Vector2 force)
{
_velocity = force;
}
public void SetForce(Vector2 force)
{
_velocity += force;
}
public void SetHorizontalForce(float x)
{
_velocity.x = x;
}
public void SetVerticalForce(float y)
{
_velocity.y = y;
}
所以你想知道如果我正确理解问题,为什么它不再上升。
我没有看到你实际上在垂直方向上增加了一个力。如果你想让它们继续向上攀爬,那么你需要让它们在水平和垂直方向上发送,以便它们保持向上跳墙,否则,它们只是在使用初始跳跃力,一旦达到顶点,它们就会开始越来越向下。
如果您需要更多解释,请告诉我,但是是的,也在其中添加一些垂直跳转,看看是否可以解决您的问题。