当我跑步时,球接近左侧球拍后,它将提前弹出四分之一的屏幕,然后击球,然后在球移开一点之后,它会开始来回弹跳,好像它正在击球一堵墙。 你能看出我做错了什么(或者不是我应该做的那样)?
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
答案 0 :(得分:0)
您正在对paddlePos X测试ballPos Y
if (ballPos.Y <= paddlePos.X + 25 && ballPos.Y >= paddlePos.X)
不应该是这个吗?
if (ballPos.Y <= paddlePos.Y + 25 && ballPos.Y >= paddlePos.Y)