Reputation: 21
is there a shorter version for this? can you explain why you consider it as a shorter/better version?
switch (v.getId()) {
case R.id.buttonUP:
moveOBJECT.setY((moveOBJECT.getY() >= 0) ? moveOBJECT.getY() - 15 : moveOBJECT.getY());
break;
case R.id.buttonDOWN:
moveOBJECT.setY((moveOBJECT.getY() + moveOBJECT.getHeight() < img.getHeight()) ? moveOBJECT.getY() + 15 : moveOBJECT.getY());
break;
case R.id.buttonLEFT:
moveOBJECT.setX((moveOBJECT.getX() >= 0) ? moveOBJECT.getX() - 15 : moveOBJECT.getX());
break;
case R.id.buttonRIGHT:
moveOBJECT.setX((moveOBJECT.getX() + moveOBJECT.getWidth() < img.getWidth()) ? moveOBJECT.getX() + 15 : moveOBJECT.getX());
break;
}
Upvotes: 2
Views: 92
Reputation: 61
Without refactoring the code I don't think there is a way to shorten it.
Maybe what would be better is to pass the getId() call into a moveObject.move( v.getId() ) and let the moveObject class handle the movement.
....... somewhere on your code
moveOBJECT.move( v.getId() );
.......
class MoveOBJECT extends view {
public void move( enum buttonPressed key) {
switch (key) {
case R.id.buttonUP:
Y = Y >= 0 ? Y - 15 : Y;
break;
case R.id.buttonDOWN:
Y = Y + height < img.getHeight() ? Y + 15 : Y;
break;
case R.id.buttonLEFT:
X = X >= 0 ? X - 15 : X;
break;
case R.id.buttonRIGHT:
X = X + width < img.getWidth() ? X + 15 : X;
break;
}
}
}
Upvotes: 1