gpt4 book ai didi

xna - Breakout Paddle 碰撞角

转载 作者:行者123 更新时间:2023-12-02 04:49:31 25 4
gpt4 key购买 nike

我正在制作 Breakout 克隆游戏,但在 Racket 碰撞方面遇到了一些麻烦。我有一个矩形代表球和桨,当它们相交时,代表球速度的 Y 向量被取反(如下所示)。一切正常。问题是当桨向右移动时,我希望它向右轻推球一点(而不是它只是正常反射)并且我希望同样的事情发生在相反的方向是桨正在移动到左边。我不确定如何去做,我已经看过了。任何帮助,将不胜感激。谢谢。

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

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

最佳答案

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

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

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

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