Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Следование за шайбой — pursuePuck

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

Если шайба принадлежит нашей команде, надо переходить к атаке,. Кто-то из моей команды ближе и он ее подберет. Шайба рядом, надо попытаться подобрать ее. Иначе пытаемся отобрать ее у соперника. MBrain. pushState (doesMyTeamHaveThePuck ()? attack: stealPuck); } } }}. Никто не подобрал шайбу, это наш шанс. MBoid. steering = mBoid. steering + mBoid. seek (aPuck.position); Шайба слишком далеко, быть… Читать ещё >

Следование за шайбой — pursuePuck (реферат, курсовая, диплом, контрольная)

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

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

Если же шайбу кто-то уже взял, то нам следует перейти либо к атаке, либо к отбору. Все это выполняется в зависимости от того, кто же умудрился захватить шайбу — игрок нашей команды или соперник.

А вот код состояния pursuePuck:

class Athlete { // (…).

private function pursuePuck () :void {.

var aPuck: Puck = getPuck ();

mBoid.steering = mBoid. steering + mBoid. separation ();

if (distance (this, aPuck) > 150) {.

// шайба слишком далеко, быть может,.

// кто-то из моей команды ближе и он ее подберет.

mBrain.popState ();

mBrain.pushState (idle);

} else {.

// шайба рядом, надо попытаться подобрать ее.

if (aPuck.owner == null) {.

// никто не подобрал шайбу, это наш шанс.

mBoid.steering = mBoid. steering + mBoid. seek (aPuck.position);

} else {.

// кто-то уже подобрал шайбу;

// если шайба принадлежит нашей команде, надо переходить к атаке,.

// иначе пытаемся отобрать ее у соперника.

mBrain.popState ();

mBrain.pushState (doesMyTeamHaveThePuck ()? attack: stealPuck); } } }}.

Обратите внимание на 6 строчку из приведенного выше кода. Она отвечает за то, чтобы игроки не оставались слишком близко друг к другу во время активного состояния pursuePuck, поскольку это будет выглядеть не естественно.

Ну и давайте взглянем на результат. Каждые 2 секунды шайба помещается в центр поля для того, чтобы мы могли взглянуть на способность наших игроков подбирать шайбу.

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