我正在尝试在 aBitmap
的屏幕上移动onTouch
aRect
。当然,我不希望 Image 消失或离开屏幕,所以我为屏幕的每一侧、顶部和底部创建一个 Rect。我为我美丽的艺术品道歉。
onTouch
@Override
public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// Left Key Touched
if (x <= bLeftRect.right && x >= bLeftRect.left
&& y >= bLeftRect.top && y <= bLeftRect.bottom) {
hero.setX(hero.getX() - tileDimen);
heroRect.set(hero.getX(), hero.getY(), hero.getX() + tileDimen, hero.getY() + tileDimen);
if (heroRect.intersect(wallTopRect)) {
hero.setX(hero.getX() + tileDimen);
} else if (heroRect.intersect(wallLeftRect)) {
hero.setX(hero.getX() + tileDimen);
}
//etc....
有没有更好的方法,因为我将有更多需要碰撞矩形的对象。我在想也许会创建 1 个“周界” Rect
:
//Right key touched
if (perimeterRect.contains(heroRect)) {
hero.setX(hero.getX() + tileDimen);
} else {
//do nothing (collision)
}
这会是更好的方法吗?非常感谢任何建议/见解。
谢谢,
马特