Конструктор
Класс GameCanvas имеет только один конструктор, принимающий один параметр, который определяет, можно ли использовать механизм управления, заданный в J2ME, по умолчанию: GameCanvas(boolean suppressKeyEvents).
Класс GameCanvas предлагает свою методику обработки нажатий клавиш, getKeyStates(), следовательно, большинство игр не используют стандартную систему реагирования на нажатия клавиш в J2ME. Поэтому многие игры напрямую обращаются к конструктору GameCanvas, позволяющему отключить методику восприятия нажатий клавиш по умолчанию. Методика getKeyStates() более эффективна, так как она не конфликтует с обычной системой восприятия клавиш. Если ваша игра использует смешанный подход к обработке нажатий клавиш, вам необходимо передать конструктору команду «false», чтобы активировать методику обработки нажатий клавиш по умолчанию.
Методы
В классе GameCanvas поддерживаются следующие методы:
► Graphics getGraphics() – получает объект Graphics для рисования на игровой схеме;
► void flushGraphics() – обнуляет буфер экрана и позволяет отобразить графические объекты на экране телефона;
► void flushGraphics(int x, int y, int width, int height) – обнуляет отдельную область буфера экрана и позволяет отобразить графические объекты в данной области;
► int getKeyStates() – считывает состояние клавиш игры (для определения состояния каждой клавиши используются константы, являющиеся масками бита);
► void paint(Graphics g) – рисует схему игры.
Для поддержки графики с двойной буферизацией в мобильной игре вам достаточно нарисовать графический объект, считанный с помощью функции getGraphics(), а затем отобразить данный объект на экране, используя функцию flushGraphics().
Класс Layer
Класс Layer представляет в мобильной игре общий графический объект; он является базовым классом для таких классов, как Sprite и TiledLayer. Несмотря на то что вы напрямую не создаете объекты Layer, вам необходимо регулярно применять методы класса Layer во время работы со спрайтами и вложенными классами.
Методы
В классе Layer поддерживаются следующие методы:
► int getX() – считывает положение верхнего левого угла слоя по оси X относительно системы координат объекта (canvas или layer manager);
► int getY() – считывает положение верхнего левого угла слоя по оси Y относительно системы координат объекта (canvas или layer manager);
► int getWidth() – считывает ширину слоя (в пикселях);
► int getHeight() – считывает высоту слоя (в пикселях);
► void setPosition(int x, int y – считывает положение верхнего левого угла слоя по осям X и Y относительно системы координат объекта (canvas или layer manager);
► void move(int dx, int dy) – изменяет положение слоя по осям X и Y на указанное значение по горизонтали и вертикали (в пикселях);
► boolean isVisible() – считывает видимость слоя;
► void setVisible(boolean visible) – настраивает видимость слоя;
► abstract void paint(Graphics g) – рисует слой при условии, что он видимый.
Эти методы обеспечивают доступ к таким стандартным параметрам слоя, как положение по осям X и Y, ширина, высота и видимость. Помните о том, что данные методы поддерживаются и классами Sprite, и TiledLayer (так как они происходят от класса Layer).