嗨,我正在做一个桨球/乒乓球游戏,我正试图弄清楚如何像其他乒乓球游戏一样随机地使球从桨上“弹开”。
最简单的方法是什么?
目前,我的碰撞代码只是使其向另一个方向反弹(向上)
public void checkCollision()
{
Rectangle paddlerect = new Rectangle((int)Paddle.pos.X, (int)Paddle.pos.Y, Paddle.paddle.Width, Paddle.paddle.Height);
Rectangle ballrect = new Rectangle((int)pos.X, (int)pos.Y, ball.Width, ball.Height);
if (ballrect.Intersects(paddlerect))
{
yspeed = 3;
}
}
你能告诉我如何使它随机向两侧反弹吗?像在乙二醛上。
最佳答案
我将假设该球至少具有4个变量:
角度
大小
极速
速度
角度+幅度形成Vector,我将其称为v1。
要使其沿“随机”方向(实际上从不随机)反弹,您需要使用窦和余弦函数。我不会再解释材料在三角形中的工作原理,但是您可以使用它们来计算其中的每个长度和角度。所以你有了:
XSpeed = v1.Magnitude * cos(v1.Angle);
YSpeed = v1.Magnitude * sin(v1.Angle);
如果您需要了解更多信息,请转至Game Programming Wiki。说真的,这真的很棒。
关于c# - C#XNA桨球游戏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7695135/