• void drawRect(int х, int у, int width, int height)
– рисует прямоугольник:– x
– координата– у
– координата– width
– ширина прямоугольника;– height
– высота прямоугольника.• void drawRoundRect(int х, int у, int width, int height, int arcWidth, int arcHeight)
– рисует прямоугольник с закругленными углами:– х
– координата– у
– координата– width
– ширина прямоугольника;– height
– высота прямоугольника;– arcWidth
– ширина закругленного угла;– arcHeight
– высота закругленного угла.• void drawString(String str, int x, int y, int anchor)
– рисует строку:– str
– указатель на строку символов;– х
– координата– у
– координата– anchor
– тип выравнивания строки.• void fillArc(int х, int у, int width, int height, int startAngle, int arcAngle)
– рисует залитый сектор эллипса (описание параметров см. для drawArc ).• void fillRect(int х, int у, int width, int height)
– рисует залитый прямоугольник (описание параметров см. для drawRect ).• void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
– рисует залитый прямоугольник с закругленными углами (описание соответствующих параметров см. для drawRoundRect ).• void fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3)
– рисует залитый треугольник:– x1
, х2, хЗ – координаты– y1
, у2, уЗ – координаты• int getColor
– получает текущий цвет в формате RGB.• void setColor(int red, int green, int blue)
– устанавливает текущий цвет в формате RGB:– red
– интенсивность красного цвета (0-255);– green
– интенсивность зеленого цвета (0-255);– blue
– интенсивность синего цвета (0-255).Инструментов очень много, и подробное их рассмотрение выходит за рамки этой книги, но, поняв принцип рисования, все, что вам нужно будет, – это обратиться к соответствующей документации.
Создадим код класса GameCanvas. Как уже упоминалось выше, код каждого класса должен находиться в отдельном файле. Так что найдите папку src нашего проекта и создайте там файл GameCanv.java.
Теперь откройте файл с помощью текстового редактора и введите базовый код класса (листинг 6.4).
Листинг 6.4. Базовый код класса
Этот класс пока ничего «не умеет». Для начала нужно создать переменную для хранения объекта Graphics
, с помощью которой будет производиться рисование. Затем нужно этот самый объект получить, лучше всего это сделать в конструкторе.Теперь немного модифицируем метод paint
и добавим в него код заливки экрана определенным цветом.В результате код нашего класса примет вид, представленный в листинге 6.5.
Листинг 6.5. Код заливки экрана определенным цветом
Итак, «холст» объявлен и обучен нехитрым действиям. Теперь нам нужно отобразить его на экране. Для этого доработаем главный класс нашего приложения. Новый код вы можете видеть в листинге 6.6.
Листинг 6.6. Отображение «холста» на экране
Теперь скомпилируйте и запустите приложение. После того как вы нажмете кнопку Launch
(Запуск), экран окрасится в серый цвет.Вы можете поэкспериментировать со значениями параметров метода setColor
. Таким образом вы сможете менять цвет заливки экрана. Только помните, что значение каждого параметра должно находиться в пределах от 0 до 255, иначе вы получите ошибку компиляции.Доработаем метод paint
класса GameCanv и добавим на экран немного фигур. Новый код метода вы можете видеть в листинге 6.7.Листинг 6.7. Добавление фигур
При запуске программы экран будет выглядеть так, как представлено на рис. 6.26.
Рис. 6.26.
Геометрические фигуры на экране эмулятора.«Научим» объект двигаться. У класса GameCanvas
существует метод keyPressed(int keyCode). Он срабатывает, когда пользователь нажимает какую-либо клавишу на телефоне. Причем параметр keyCode содержит код нажатой клавиши, так что вы без труда определите, что именно было нажато.Для хранения координат объекта (в нашем случае кружка) воспользуемся переменными и будем их менять, когда пользователь нажмет на клавишу джойстика.
Ниже представлены числовые коды клавиш джойстика (табл. 6.1).
Таблица 6.1.
Коды клавиш