Читаем Создание игр для мобильных телефонов полностью

Переменная waterDelay – это просто счетчик, поэтому она инициализируется значением 0. Переменная waterTile содержит номер первого изображения анимационного элемента замощенного слоя, в данном случае -1 (рис. 11.5). Переменные для создания анимации воды используются в методе update, в котором также реализована большая часть логики мидлета. В листинге 11.1 приведен код метода update. Листинг 11.1. Метод update класса WCanvas перемещает окно вида в соответствии с нажатиями клавиш

private void update {

// обработка пользовательского ввода

if (++inputDelay > 2) {

int keyState = getKeyStates;

int xMove = 0, yMove = 0;

if ((keyState & LEFT_PRESSED) != 0)

xMove = -12;

else if ((keyState & RIGHT_PRESSED) != 0)

xMove = 12;

if ((keyState & UP_PRESSED) != 0)

yMove = -12;

else if ((keyState & DOWN_PRESSED) != 0)

yMove = 12;

if (xMove != 0 || yMove != 0) { //Если произошло движение, то необходимо изменить положение окна вида, центрировать спрайт героя на экране, воспроизвести анимацию спрайта героя

layers.setViewWindow(xView + xMove, yView + yMove, getWidth,

getHeight);

personSprite.move(xMove, yMove);

personSprite.nextFrame;

}

// Проверить столкновение спрайта со слоем-барьером

if (personSprite.collidesWith(barrierLayer, true)) {

// Воспроизвести звук столкновения

try {

Manager.playTone(ToneControl.C4 + 12, 100, 100); //Воспроизвести звук, если герой столкнулся со слоем-барьером

}

catch (Exception e) {

}

// Восстановить исходные положения окна вида и персонажа

layers.setViewWindow(xView, yView, getWidth, getHeight);

personSprite.move(-xMove, -yMove);

}

else {

// если нет столкновения, то применить изменения к окну вида

xView += xMove;

yView += yMove;

}

// обновить анимацию элементов слоя

if (++waterDelay > 2) {

if (++waterTile > 4) //Этот код воспроизводит анимацию изображения воды

waterTile = 1;

barrierLayer.setAnimatedTile(-1, waterTile);

waterDelay = 0;

}

// обнулить задержку ввода

inputDelay = 0;

}

}

Первый интересный фрагмент кода – это обработка пользовательского ввода, в результате персонаж перемещается по замощенному слою. В отличие от предыдущего примера Wanderer, в этой версии для отображения текущей видимой области слоев используется окно вида. Временные переменные xMove и yMove используются для того, чтобы определить необходимость перемещения окна вида. При необходимости окно перемещается на значения, хранимые в этих переменных. В этом случае спрайт героя перемещается в центр экрана. Настоящее волшебство начинается в середине метода update, где определяется столкновение между спрайтом героя и слоем-барьером. Этот код превращает слой в слой-барьер. Если столкновение произошло, то воспроизводится соответствующий звук, а окно вида и спрайт героя возвращаются в положение до столкновения. Если столкновения нет, то положение окна вида изменяется, переменные xView и yView принимают новые значения.

...

Совет Разработчику

Важно отметить, что метод update больше не вызывает метод checkBackgroundBounds, как это делалось в мидлете Wanderer Этот метод больше не требуется, потому что теперь перемещения героя ограничиваются проверкой столкновений со слоем-барьером.

Перейти на страницу:

Похожие книги

С компьютером на ты. Самое необходимое
С компьютером на ты. Самое необходимое

Рассказывается о работе в операционной системе Windows (на примере версий XP и 7), текстовом редакторе Word 2010 и других приложениях, необходимых каждому пользователю: архиваторах, антивирусах и программах для просмотра видео и прослушивания музыки (Winamp, QuickTime Pro). Большое внимание уделяется работе в Интернете. Рассказывается о программах для просмотра Web-страниц, об электронной почте, а также о различных полезных приложениях для работы в сети — менеджерах закачек файлов, ICQ, Windows Live Messenger, MSN и многих других. Во втором издании рассмотрена новая ОС — Windows 7, а также последние версии приложений для пользователей.Для начинающих пользователей ПК.

Андрей Александрович Егоров , Андрей Егоров

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
От «кирпича» до смартфона
От «кирпича» до смартфона

Перед вами уникальное исследование мира мобильной индустрии, превращенное его автором Эльдаром Муртазиным, ведущим аналитиком Mobile Research Group и главным российским специалистом по мобильным телефонам, в захватывающий бизнес-триллер. Гигантские компании — Nokia, Motorola, Samsung бросают на мобильный фронт колоссальные силы, создают альянсы, охотятся за лучшими специалистами, шпионят друг за другом. Разработки ведутся в обстановке строжайшей секретности. Цель — выпустить на рынок новую, уникальную модель раньше конкурентов или даже полностью изменить наше представление о мобильном телефоне, как это недавно удалось Apple со своим iPhone.Эта книга предназначена для тех, кто видит в мобильном телефоне не просто средство связи, а чудо инженерной мысли, смелое воплощение дизайнерских фантазий, символ нашей эпохи.

Эльдар Викторович Муртазин , Эльдар Муртазин

Справочная литература / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии