Я пытаюсь сделать свою первую игру для Android, просто клон понг, у меня есть класс "PongView", который расширяет SurfaceView и является моим единственным видом.В нем есть предметы моих классов "Ball" и "Paddle".Я только начал перемещать код, связанный с такими вещами, как обнаружение столкновений стен, в классы Ball и Paddle, чтобы немного привести в порядок мой основной вид и понял, что мне нужно дать этим классам способ узнать ширину и высоту видов.На данный момент моя работа заключается в том, чтобы просто инициализировать глобальную переменную внутри метода surfaceviews surfaceChanged , которая хранит ширину и высоту вида, например:
//at the top of my class
private int viewWidth;
private int viewHeight;
..
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
//INITIALISE viewWidth and viewHeight here
//so that they can be passed as parameters
viewWidth = getWidth();
viewHeight = getHeight();
//some other irrelevant code here
}
Затем я передаю ихв качестве параметров:
ball.handleWallCollision(viewWidth, viewHeight);
Однако я не уверен, что это способ сделать это, так как мне нужно будет передавать их довольно часто, как я себе представляю.Я думал, что будет лучше, если у меня будет копия текущего PongView в каждом классе?Но я не уверен, правда ли это, или как / когда можно получить его.
Что бы вы порекомендовали?Спасибо