Майкл Моррисон - Создание игр для мобильных телефонов

Тут можно читать онлайн Майкл Моррисон - Создание игр для мобильных телефонов - бесплатно ознакомительный отрывок. Жанр: comp-programming. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Создание игр для мобильных телефонов
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    3.56/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Майкл Моррисон - Создание игр для мобильных телефонов краткое содержание

Создание игр для мобильных телефонов - описание и краткое содержание, автор Майкл Моррисон, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга «Создание игр для мобильных телефонов» – это практическое руководство, которое поможет разработать и реализовать игру для мобильного телефона.

Книга написана простым языком, не содержит сложной и скучной теории программирования и шаг за шагом знакомит с методикой создания технологии «plug-and-play» применительно к созданию огромного количества игр.

В издание включены подробные описания и примеры кодов для четырех игр, а также информация, необходимая для реализации вашей собственной задумки.

Если вы любите играть в игры и занимаетесь программированием, то эта книга – для вас!

Перевод: К. Михалкин

Создание игр для мобильных телефонов - читать онлайн бесплатно ознакомительный отрывок

Создание игр для мобильных телефонов - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Майкл Моррисон
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Программирование спрайта преследователя

Класс ChaseSprite – производный класс от стандартного Sprite, и это неудивительно. Переменные класса ChaseSprite могут дать представление о внутреннем устройстве класса. Ниже приведены наиболее важные переменные, объявленные в классе ChaseSprite:

private int speed;

private TiledLayer barrier;

private boolean directional;

private Sprite chasee; //Спрайт преследуемого

private int aggression; // 0 – 10

Переменная speed хранит значение скорости преследующего спрайта, скорость задается в пикселях за игровой цикл. Каждый раз, когда спрайт преследователя совершает движение в направлении преследуемого спрайта, он перемещается на число пикселей, задаваемое этой переменной. Переменная barrier указывает на слой, ограничивающий перемещение спрайта преследователя. Важно отметить, что этой переменной вы можете присвоить значение null, если не хотите, чтобы перемещения этого спрайта были чем-то ограничены. Например, если вы создали лабиринт в замке и населили его всевозможными существами, то, вероятно, для привидений не имеет смысла создавать преграды, поскольку они могут свободно проходить сквозь стены. Или, например, в игру High Seas вы можете добавить дракона, которому земля – не помеха.

Но вернемся к классу ChaseSprite. Переменная directional определяет, есть ли у спрайта направление или нет. Направленный спрайт, очевидно, имеет различимые стороны, это означает, что его фреймы должны содержать изображения, соответствующие перемещению спрайта в определенном направлении, а не только анимацию движений. Хотя это вовсе не спрайт преследователя, корабль из игры High Seas – это хороший пример направленного спрайта, а спрайт осьминога – это пример спрайта, который не имеет направленности, он перемещается, не разделяя направления.

Переменная chasee – это преследуемый спрайт, он очень важен для корректной работы спрайта преследователя. Наконец, переменная aggression хранит целое число от 0 до 10, которое определяет, насколько агрессивно себя ведет спрайт. Значение 0 соответствует наименее агрессивному спрайту, который не старается преследовать вовсе, а значение 10 соответствует спрайту, который беспрестанно преследует свою жертву. При разработке игр с преследующими спрайтами поэкспериментируйте с этой переменной, чтобы добиться желаемого результата.
...

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

По мере развития игровых действий целесообразно увеличивать значение переменной, определяющей агрессию спрайта преследователя, – это сделает игру интереснее. Вы можете связать агрессию спрайтов с уровнем игры (количеством набранных игроком очков) или просто с прошедшим от начала игры временем.

Переменные класса ChaseSprite инициализируются конструктором ChaseSprite() (листинг 13.1).

Листинг 13.1. Конструктор ChaseSprite() вызывает родительский конструктор и инициализирует переменные класса

public ChaseSprite(Image image, int frameWidth, int frameHeight, int chaseSpeed,

TiledLayer barrierLayer, boolean hasDirection, Sprite chaseeSprite,

int aggressionLevel) {

super(image, frameWidth, frameHeight);

// инициализация генератора случайных чисел

rand = new Random();

// установить скорость

speed = chaseSpeed;

// установить слой-барьер

barrier = barrierLayer;

// установить, направленный ли спрайт

directional = hasDirection;

// установить преследуемый спрайт

chasee = chaseeSprite;

// установить уровень агрессии

aggression = aggressionLevel; //Чем больше значение, тем агрессивнее спрайт. Это значение лежит в диапазоне от 0 до 10

}

Этот код достаточно прост, в нем переменным класса присваиваются параметры спрайта преследующего. Важно обратить внимание на порядок параметров преследующего, передаваемых в конструктор. Также стоит обратить внимание на вызов родительского конструктора Sprite() через метод super(), которому передаются значения ширины и высоты фрейма спрайта.

Помимо переменных, работу класса определяет единственный метод – update(). Этот метод вызывается один раз за игровой цикл, он обновляет спрайт и перемещает его. Листинг 13.2 содержит код метода update() метода ChaseSprite.

Листинг 13.2. Метод update() класса ChaseSprite реализует преследование

public void update() {

// временно сохранить положение

int xPos = getX();

int yPos = getY();

int direction = 0; // up = 0, right = 1, down = 2, left = 3

// Преследовать или переместиться случайным образом в зависимости от

уровня агрессии

if (Math.abs(rand.nextInt() % (aggression + 1)) > 0) {

// преследовать

if (getX() > (chasee.getX() + chasee.getWidth() / 2)) { //Преследование продолжается, пока преследуемый не входит в граничную зону преследователя

// преследовать влево

move(-speed, 0);

direction = 3;

}

else if ((getX() + getWidth() / 2) < chasee.getX()) {

// преследовать вправо

move(speed, 0);

direction = 1;

}

if (getY() > (chasee.getY() + chasee.getHeight() / 2)) {

// преследовать вверх

move(0, -speed);

direction = 0;

}

else if ((getY() + getHeight() / 2) < chasee.getY()) {

// преследовать вниз

move(0, speed);

direction = 2;

}

}

else {

// переместиться случайным образом

switch (Math.abs(rand.nextInt() % 4)) { //Если спрайт не преследует, то он просто перемещается случайным образом

// переместиться влево

case 0:

move(-speed, 0);

direction = 3;

break;

// переместиться вправо

case 1:

move(speed, 0);

direction = 1;

break;

// переместиться вверх

case 2:

move(0, -speed);

direction = 0;

break;

// переместиться вниз

case 3:

move(0, speed);

direction = 2;

break;

}

}

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

if (barrier != null && collidesWith(barrier, true)) {

// вернуть спрайт в исходное положение

setPosition(xPos, yPos);

}

// если спрайт направленный, то перейти к нужному фрейму

if (directional) //Если спрайт является направленным, то выбирается соответствующий фрейм анимации, в противном случае выводится следующий фрейм анимации

setFrame(direction);

else

nextFrame();

}

Я знаю, что это достаточно сложный метод, но помните, что это практически весь код класса ChaseSprite. Метод update() начинается с сохранения текущего положения спрайта преследователя. Это важно, потому как этот метод обновляет положение и направление спрайта позже, но в случае, если есть преграда на его пути, то необходимо восстановить положение после предыдущего перемещения. Обратите внимание, что направление спрайта выражается целым числом от 0 до 3 (вверх = 0, вправо = 1, вниз = 2, влево = 3).

Поведение спрайта преследователя определяется переменной aggression. Случайное число из диапазона от 0 до aggression получается вызовом метода nextInt(). Если это число отлично от 0, то спрайт преследует свою цель. Это означает, что чем больше значение переменной aggression, тем чаще спрайт преследует жертву. Ниже приведены некоторые значения переменной aggression и их влияния на частоту преследования спрайтом:

► агрессия 0 – нет преследования;

► агрессия 1 – преследование один раз за два игровых цикла;

► агрессия 5 – преследование выполняется пять раз за 6 игровых циклов;

► агрессия 10 – преследование выполняется 10 раз за 11 игровых циклов.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Майкл Моррисон читать все книги автора по порядку

Майкл Моррисон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Создание игр для мобильных телефонов, автор: Майкл Моррисон. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x