gpt4 book ai didi

xna - 突破桨碰撞角度

转载 作者:行者123 更新时间:2023-12-02 21:48:20 25 4
gpt4 key购买 nike

我正在制作一个突破克隆,但在球与 Racket 碰撞方面遇到了一些麻烦。我有一个矩形代表球和桨,当它们相交时,代表球速度的 Y 向量被取负(如下所示)。一切都很好。问题是,当 Racket 向右移动时,我希望它将球稍微向右推(而不是正常地反射),并且我希望在 Racket 移动到的相反方向上发生同样的情况左边。我不知道如何去做这件事,我已经到处看了。任何帮助,将不胜感激。谢谢。

if (paddleRectangle.Intersects(ballRectangle))
{
ballVelocity.Y *= -1;
collision.Play(); //a collision sound
}

编辑:基本上我想根据 Racket 移动的方向稍微改变球从 Racket 弹起的角度。如果 Racket 没有移动,那么球将正常弹跳(通过反转球速度的 Y 分量)

最佳答案

将桨的速度矢量添加到桨的法线矢量(这基本上使法线沿桨移动的方向弯曲)并对结果进行归一化。使用它作为反射的碰撞法线。

Vector2 collisionNormal = Vector2.Normalize(paddleNormal + (paddleVelocity * desiredEffectAmount));
ballVelocity = Vector2.Reflect(ballVelocity, collisionNormal);

关于xna - 突破桨碰撞角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19145678/

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