Помощь в написании студенческих работ
Антистрессовый сервис

Обзор предстоящей работы

РефератПомощь в написанииУзнать стоимостьмоей работы

Касаемо обработки шайбы: если игрок, А находится с шайбой, а игрок B сталкивается с ним, то шайба переходит к игроку B, который становится недвижимым на некоторое время. Класс, ответственный за саму игру, называется PlayState. Среди его полей есть каток, две группы хоккеистов, а также двое ворот. Если мы добавим одного хоккеиста на поле, то увидим такой результат: Private var mBoid: Boid… Читать ещё >

Обзор предстоящей работы (реферат, курсовая, диплом, контрольная)

Как уже говорилось выше, хоккей — очень сложная игра. В ней присутствует огромное количество правил, нарушений и т. д. Для сокращения времени обучения, мы несколько упростим игру и сохраним лишь небольшой набор оригинальных правил этого вида спорта: у нас не будет вратарей (все игроки на катке будут двигаться), а также мы не будем учитывать всевозможные штрафы.

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

Касаемо обработки шайбы: если игрок, А находится с шайбой, а игрок B сталкивается с ним, то шайба переходит к игроку B, который становится недвижимым на некоторое время.

Для вывода графики я буду использовать графический движок Flixel. Однако в прилагаемом коде я буду опускать все связанное с графикой и максимально обращать ваше внимание на механику игры.

Базовые классы

Давайте начнем с основ — катка, который представляет собой прямоугольник, игроков и двух ворот. Каток имеет физические границы, поэтому ничего не выйдет за пределы поля. Хоккеист будет описываться классом Athlete:

public class Athlete {.

private var mBoid: Boid; // контролирует физическое тело хоккеиста.

private var mId: int; // уникальный идентификатор хоккеиста.

public function Athlete (thePosX :Number, thePosY: Number, theTotalMass: Number) {.

mBoid = new Boid (thePosX, thePosY, theTotalMass); }.

public function update ():void {.

// очистка всех действующих сил.

mBoid.steering = null;

// метод блуждания по катку.

wanderInTheRink ();

// главный метод обновления физического тела.

mBoid.update (); }.

private function wanderInTheRink () :void {.

var aRinkCenter: Vector3D = getRinkCenter ();

// Если расстояние до центра катка больше 80.

// вернуться в центр, иначе бродить.

if (Utils.distance (this, aRinkCenter) >= 80) {.

mBoid.steering = mBoid. steering + mBoid. seek (aRinkCenter);

} else {.

mBoid.steering = mBoid. steering + mBoid. wander (); } } }.

Поле mBoid является объектом класса Boid, более подробно о котором вы можете прочитать в серии уроков про рулевое поведение. Он имеет, среди прочих элементов, вектор направления, вектор силы, а также текущее положение игрока.

Метод update () будет вызываться каждый раз, пока запущена игра. Сейчас в этом методе очищается любое активное усилие в рулевом поведении, добавляется эффект блуждания игрока, а также вызывается метод mBoid. update ().

Класс, ответственный за саму игру, называется PlayState. Среди его полей есть каток, две группы хоккеистов, а также двое ворот.

public class PlayState {.

private var mAthletes: FlxGroup;

private var mRightGoal: Goal;

private var mLeftGoal: Goal;

public function create ():void {.

// здесь будут создаваться все игровые элементы }.

override public function update ():void {.

// включить коллизию всех хоккеистов с бортиками катка.

collide (mRink, mAthletes);

// проверка того, что все хоккеисты в пределах катка.

applyRinkContraints (); }.

private function applyRinkContraints () :void { } }.

Если мы добавим одного хоккеиста на поле, то увидим такой результат:

Показать весь текст
Заполнить форму текущей работой