Виктор Гольцман - Компьютер + мобильник: эффективное взаимодействие Страница 21
Виктор Гольцман - Компьютер + мобильник: эффективное взаимодействие читать онлайн бесплатно
– width – ширина прямоугольника;
– height – высота прямоугольника;
– arcWidth – ширина закругленного угла;
– arcHeight – высота закругленного угла.
• void drawString(String str, int x, int y, int anchor) – рисует строку:
– str – указатель на строку символов;
– х – координата Х левого верхнего угла строки;
– у – координата Y левого верхнего угла строки;
– 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, уЗ – координаты Y первой, второй и третьей вершины треугольника соответственно.
• 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. Коды клавиш
При рисовании кружка не будем задавать координаты жестко, а укажем, что они содержатся в переменных X и Y. В листинге 6.8 представлен полный код класса GameCanv.
Листинг 6.8. Полный код класса GameCanv
Поэкспериментируйте с различными фигурами. Проявите творчество!
На этом закончим знакомство с языком Java для мобильных телефонов. Вы получили базовые сведения, необходимые начинающему разработчику. Продолжайте изучение этого языка – и скоро сможете писать полноценные игры для мобильных телефонов.
Глава 7
ПЕРЕПРОШИВКА, ОБНОВЛЕНИЕ И ТЕСТИРОВАНИЕ ТЕЛЕФОНА
В этой главе отправимся в довольно рискованный рейд по просторам вашего мобильного телефона. Перед подобной дорогой полезно ознакомиться если не с картой, то хотя бы с абрисом предстоящего маршрута. Освоение компьютера можно сравнить с путешествием, организованным туристической фирмой. Универсальный путеводитель по персональному компьютеру купить вполне реально – ведь в 99 % случаев ваша машина принадлежит к миру WIntel. Так в шутку говорят о компьютере, построенном на Intel-совместимой платформе и работающем под управлением операционной системы Windows. В этой книге всюду подразумевается именно подобная машина, а пользователям Apple Macintosh или операционной системы Linux приведенные описания программ и настроек вряд ли пригодятся.
Создавать универсальное пошаговое руководство по освоению мобильного телефона практически бессмысленно, вскоре вы поймете почему. Воспользуемся опытом подготовки подразделений спецназа, которые, как известно, должны осваиваться, выживать и действовать в любых незнакомых условиях. Для этого, в первую очередь, надо знать общие принципы выживания и уметь добывать информацию любым доступным путем. Поэтому приготовьтесь к длинному теоретическому отступлению.
Общие сведения об архитектуре сотового телефона
Нет ничего практичнее, чем хорошая теория. Постараемся опираться на школьный курс информатики и ваш опыт работы с компьютером. Как уже сказано, принципы устройства и персонального компьютера, и мобильного телефона очень схожи. Вместе с тем мир мобильных использует немного другой подход к программному обеспечению и несколько иную терминологию.
«Тело» и «душа» телефона
С одной стороны, и компьютер, и телефон собраны из вполне вещественных деталей: микросхем, конденсаторов, печатных плат, проводов, кнопок и т. д. Специалисты по компьютерам или телефонам официально называют это аппаратной частью, или аппаратным обеспечением, а в разговоре издавна используют короткое слово «железо». Младшее поколение стало называть аппаратную часть мобильного телефона еще проще: «тело». Возможно, такой жаргон режет слух, зато очень точно отражает суть аппаратного обеспечения. Аппаратная часть действительно играет роль «тела» мобильного телефона или компьютера.
Как вы догадываетесь, дальше нужно вспомнить о душе. В качестве «души» любого цифрового программируемого автомата выступает его программное обеспечение. Все телефонные (прием, передача и расшифровка сигналов, идентификация телефона в сети и др.) и все компьютерные функции (телефонная книга, голосовой набор, игры и др.) мобильного телефона зависят не только и не столько от аппаратной части, сколько от программного обеспечения.
Главное отличие аппаратной части телефона и компьютера вовсе не в размерах, а в разнообразии. Подавляющее большинство компьютеров независимо от производителя построено на единой платформе, называемой x86. Процессоры компаний Intel и AMD являются прямыми потомками одной микросхемы, выпущенной более двух десятилетий тому назад. Чтобы удержаться на рынке, создатели компьютерных комплектующих вынуждены придерживаться множества открытых стандартов. В результате компьютер можно собрать из отдельных блоков – устройств, выпущенных самыми разными производителями. Поэтому и операционные системы, и другие программы достаточно универсальны.
Мобильные телефоны изначально разрабатывались многими конкурирующими компаниями, и в результате было создано несколько десятков различных аппаратных платформ. Модификаций этих платформ еще больше. Законы рынка мобильной связи только способствуют разнообразию аппаратных и программных решений. Стандартизация коснулась лишь внешних интерфейсов, и то не всех. Наглядный пример тому – выбор data-кабеля. Из-за необходимости тесного взаимодействия аппаратной и программной частей телефона программное обеспечение для него создают исключительно производители трубок специально под конкретную модель. На других телефонах эти программы работать не будут: с чужой «начинкой» телефон, как правило, даже не включится.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.