C#XNA桨式球类游戏
嘿,伙计,我正在做一个划板球/乒乓球游戏,我正在想办法让球像其他乒乓球游戏一样从划桨上随机“反弹”开 最简单的方法是什么 目前,我的碰撞代码只是使其在另一个方向反弹(向上)C#XNA桨式球类游戏,c#,xna,C#,Xna,嘿,伙计,我正在做一个划板球/乒乓球游戏,我正在想办法让球像其他乒乓球游戏一样从划桨上随机“反弹”开 最简单的方法是什么 目前,我的碰撞代码只是使其在另一个方向反弹(向上) 你能告诉我怎么让它向两边弹起吗?就像在diaganol上一样。我假设有一个名为xspeed的变量,它控制球向左或向右移动的速度 乒乓球类游戏有两个主要功能 只要反转y轴速度,就像你正在做的那样(实际上) 反转y速度,但也改变x速度,这取决于球击中的“球棒”的位置。i、 e.在最右边击球会使球反弹到右边 对于选项2,您可以A)
你能告诉我怎么让它向两边弹起吗?就像在diaganol上一样。我假设有一个名为
xspeed
的变量,它控制球向左或向右移动的速度
乒乓球类游戏有两个主要功能
var relativemidpoint = (ball.left + ball.width/2) -
(paddle.left + paddle.width/2);
// Option A
xspeed = relativemidpoint / 10; // or some other constant
// Option B
xspeed += relativemidpoint / 10; // or some other constant
您可能还希望将xspeed限制在一个范围内,这样它就不会在侧面过快
如果您希望总速度保持恒定,则必须根据
xspeed
的值缩放yspeed
,我假设球至少有4个变量:
- 角度
- 量级
- X速度
- Y速度
XSpeed = v1.Magnitude * cos(v1.Angle);
YSpeed = v1.Magnitude * sin(v1.Angle);
如果您需要了解更多信息,请访问。说真的,它真的很棒。不知道代码的其余部分这只是猜测,但是如果你有一个确定垂直速度和方向的yspeed变量。难道你没有一个X速度,你可以用同样的方式改变吗?我从来没有见过一个乒乓球游戏,其中“球”随机反弹“离开”,通常在乒乓球游戏中,球在Y轴上的方向只是在击球时反转。如果(ballrect.Intersects(PableRect)){yspeed=-yspeed;}
XSpeed = v1.Magnitude * cos(v1.Angle);
YSpeed = v1.Magnitude * sin(v1.Angle);