这里是我为在屏幕上移动正方形而编写的算法,Xcenter和Ycenter是正方形的中心。 speedX是水平速度,speedY是垂直速度。
while (true)
{
int keyState = getKeyStates();
// Update the ball's position
xCenter += speedX;
yCenter += speedY;
// Check if the ball hit the bound. 'Reflect' the ball if so.
if (xCenter > xMax)
{
xCenter = xMax;
speedX = -speedX;
}
else if (xCenter < xMin)
{
xCenter = xMin;
speedX = -speedX;
}
if (yCenter > yMax)
{
yCenter = yMax;
speedY = -speedY;
}
else if (yCenter < yMin)
{
yCenter = yMin;
speedY = -speedY;
}
提高速度的算法应该是什么? speedX ++,只是在水平方向上增加,因此没有给出期望的结果。
提前致谢。
答案 0 :(得分:0)
您可以顺序递增/递减这些X,Y位置。因为设置变量不会移动方块。但是当您将新位置应用于Action时,Square将立即进入新位置。
还有一个建议
当你发现方块离开边界时,它实际上需要从对面出现。方法if (xCenter > xMax)
设置xCenter = xMin
,反之亦然