当我运行这个时,在球靠近左桨后,它会提前反弹四分之一屏幕,击中桨,然后在球移动一点后,它开始来回弹跳,好像它撞到墙上一样。你能看到我做错了什么(或者我不应该做的事)吗?
ballPos 是球位置的 Vector2 值。paddleStaticPos.X 是桨的 X 位置(位于左墙 5 处) paddlePos.X 是左桨的 Y 值。
我知道我应该分别使用左右桨的矢量值而不是绑定,但我没有时间再修复它了。这是代码:
if (ballPos.X <= paddleStaticPos.X + 15)
{
if (ballPos.Y <= paddlePos.X + 25 && ballPos.Y >= paddlePos.X)
{
gameStartpaddleHit = true;
lastPaddleHitLeft = true;
ballLeft = ballLeft * -1;
ballUp = ballUp * -1;
soundEffect[0].Play();
}
}
//Sedond Sector(26-100[MIRROR EFFECT])
int tmp2=ballLeft;
if (ballPos.X <= paddleStaticPos.X + 15)
{
if (ballPos.Y <= paddlePos.X + 99 && ballPos.Y >= paddlePos.X + 26)
{
gameStartpaddleHit = true;
lastPaddleHitLeft = true;
ballLeft = tmp2 * -1;
soundEffect[0].Play();
}
}
//Third Sector(101-125[SHARP ANGLE DEFLECT])
if (ballPos.X <= paddlePos.X + 15)
{
if (ballPos.Y <= paddlePos.X + 125 && ballPos.Y >= paddlePos.X + 100)
{
gameStartpaddleHit = true;
lastPaddleHitLeft = true;
ballLeft = ballLeft * -1;
ballUp = ballUp * -1;
soundEffect[0].Play();
}
}
如果您更喜欢 pastebin: http: //pastebin.com/K0PitFcQ