我试图在我的游戏中复制源引擎的运动物理,直接从其源代码中窃取它。唯一我想做的修改是去掉玩家的能力,使用空中滑行(airstrafing)超过最大速度限制。从我理解的角度来看,这个bug的源头在这个代码行中:currentspeed = DotProduct(velocity, wishdir);DotProduct函数使其发生,但我无法替换它而不破坏一些东西。 我无法硬限制玩家的速度,因为外部加速源,如爆炸,无法正常工作。 我无法用velocity.length()替换它,因为似乎一旦达到最大速度,空中运动就会被锁定。 我尝试用current_dir.dot(target_dir)处理空中破碎的边缘案例,但它要么破坏空中转弯(即使没有获得速度)要么瞬间将我的速度转向侧面。 我如何修改源引擎运动代码来实现这一点而不破坏整个源引擎游戏的氛围?
如何从源引擎的运动代码中移除bhopping/airstrafing而不影响其物理的其他方面?
评论 (0)