屏幕内的Android限制球

时间:2015-01-24 18:32:40

标签: android

我想限制球不要离开屏幕,我有支票:

if(myBall.x - myBall.radius> 0 && myBall.x+myBall.radius < mainLayout.getWidth()) {
  myBall.invalidate();
}

运动发生在最高灵敏度的加速度计上(球快速移​​动),发生的问题是球有时会离屏幕一半。我怎么能防止这种情况?谢谢!

1 个答案:

答案 0 :(得分:0)

你的球每次移动一定的像素,所以它肯定会经常离开屏幕,你需要创建一个方法,如果它退出并将其设置在那里然后将它返回到屏幕中绘制它并执行invalidate()方法

如果球水平移动,那么如果它从左侧熄灭,你只需将x设置为0,如果它从右边熄灭,则将其设置为window.width()。

修改

不确定你的意思是跳跃,但是我猜你在熄灭后正在把球拿回去然后再把它拉回来,如果是这样的话你需要在你确认它之后纠正它来画画不在外面。

你的代码有点乱,试着把它整理起来,比如:

if(ball.x > 0 && (ball.x + ball.width) < window.width())    //check what matters only
 { return_ball_inside;  //correct mistakes
   repaint();
 }
invalidate();  //just call it after the corrections rather than in every condition