Дипломы, курсовые, рефераты, контрольные...
Срочная помощь в учёбе

Улучшение отбора шайбы

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

Теперь наши игроки не будут бежать сломя голову к противнику, пытаясь отобрать у него шайбу. Побегут только те, расстояние от которых до соперника не превышает 150. Взгляните на полученный результат. Теперь игроки более адекватно ведут себя при отборе шайбы. Нет, он слишком далеко; в скором времени на этом. Да, он рядом; надо предугадать его положение и. MBoid. steering = mBoid.steering.add… Читать ещё >

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

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

class Athlete { // (…).

private function stealPuck () :void {.

// есть ли у шайбы владелец?

if (getPuckOwner () ≠ null) {.

// да, есть.

if (doesMyTeamHaveThePuck ()) {.

// шайба у моей команды.

// время перейти в атаку.

mBrain.popState ();

mBrain.pushState (attack);

} else {.

// шайба у противников.

var aOpponentLeader: Athlete = getPuckOwner ();

// лидер соперников близок ко мне?

if (distance (aOpponentLeader, this) < 150) {.

// да, он рядом; надо предугадать его положение и.

// перехватить его.

mBoid.steering = mBoid.steering.add (mBoid.pursuit (aOpponentLeader.boid));

mBoid.steering = mBoid.steering.add (mBoid.separation (50));

} else {.

// нет, он слишком далеко; в скором времени на этом.

// месте мы будем переходить в защиту.

// TODO: mBrain. popState ();

// TODO: mBrain. pushState (defend); } }.

} else {.

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

// надо подобрать ее.

mBrain.popState ();

mBrain.pushState (pursuePuck); } } }.

Теперь наши игроки не будут бежать сломя голову к противнику, пытаясь отобрать у него шайбу. Побегут только те, расстояние от которых до соперника не превышает 150.

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

Взгляните на полученный результат. Теперь игроки более адекватно ведут себя при отборе шайбы.

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