Как я могу передать текущий SurfaceView в другие методы объекта? - PullRequest
0 голосов
/ 13 декабря 2011

Я пытаюсь сделать свою первую игру для 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 в каждом классе?Но я не уверен, правда ли это, или как / когда можно получить его.

Что бы вы порекомендовали?Спасибо

1 Ответ

0 голосов
/ 13 декабря 2011

использовать объект класса вида поверхности, который использовался для настройки вида в действии. Этот объект является активным и будет содержать все изменения, относящиеся к этому виду поверхности

SurfaceView sur=new SurfaceView(this);  /// you created object
setContentView(sur);
//you do your work
//surface view is running

Теперь вы хотите выйти из этого действия. Затем используется onDestroy () CommonClass.ObjectVraible = сюр;

эта строка сохранит текущее состояние вида поверхности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...