您在中使用x变量,
x=xVel+x;但未在函数中声明它,因此java假定它是
this.x
因此您的代码如下所示:
this.x=xVel+this.x;this.y=yVel+this.y;if(this.x>this.x) // always false xVel=xVel*-1;if(this.y>this.y) // always false yVel=yVel*-1;
您需要将其更改为:
int newX = xVel+this.x;int newY = yVel+this.y;if( (newX<0) || (newX>this.maxX) ) xVel=xVel*-1;else this.x = newX;if( (newY<0) || (newY>this.maxY) ) yVel=yVel*-1;else this.y = newY;
maxX和maxY应该具有x和y可以具有的最大值
注意-此代码在某些迭代过程中不会移动对象,出于教学目的,我建议您针对此类情况进行更新



