×
Traktatov.net » Создание игр для мобильных телефонов » Читать онлайн
Страница 234 из 246 Настройки

Конструктор

Класс 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).