当我运行这个的时候,当球接近左边的球拍时,它会提前弹出四分之一的屏幕,击中球拍,然后在球稍微远离一点之后,它就会开始来回反弹,就像它在撞墙一样。你能看到我做错了什么(或者没有做我应该做的事)吗?
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();
}
}如果你更喜欢粘贴纸:http://pastebin.com/K0PitFcQ
发布于 2014-01-06 19:01:57
您正在针对paddlePos X测试ballPos Y
if (ballPos.Y <= paddlePos.X + 25 && ballPos.Y >= paddlePos.X)不应该是这样的吗?
if (ballPos.Y <= paddlePos.Y + 25 && ballPos.Y >= paddlePos.Y)https://stackoverflow.com/questions/20943112
复制相似问题