增加/减少平方速度

时间:2016-03-28 12:15:43

标签: java algorithm

这里是我为在屏幕上移动正方形而编写的算法,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 ++,只是在水平方向上增加,因此没有给出期望的结果。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以顺序递增/递减这些X,Y位置。因为设置变量不会移动方块。但是当您将新位置应用于Action时,Square将立即进入新位置。

还有一个建议

当你发现方块离开边界时,它实际上需要从对面出现。方法if (xCenter > xMax)设置xCenter = xMin,反之亦然