ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

БостояниС покоя. 
ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚: тСория ΠΈ рСализация

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠΠ°Ρ…ΠΎΠΆΡƒΡΡŒ Π»ΠΈ я Π² ΡΠ²ΠΎΠ΅ΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ? MBoid. steering = mBoid. steering + mBoid. arrive (mInitialPosition, 80); Private function stopAndlookAt (thePoint :Vector3D) :void {. MBoid. velocity = normalize (mBoid.velocity) * 0.01; } }. If (distance (mBoid.position, mInitialPosition) ≤ 5) {. Π― Π² ΡΠ²ΠΎΠ΅ΠΉ стартовой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. MBoid. velocity = thePoint — mBoid. position; Private function prepareForMatch… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

БостояниС покоя. ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚: тСория ΠΈ рСализация (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

public class Athlete {.

public function Athlete (thePosX :Number, thePosY: Number, theTotalMass: Number, theTeam: FlxGroup) { // ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π˜Π˜ состояния 'idle'.

mBrain.pushState (idle); }.

private function idle () :void {.

var aPuck: Puck = getPuck ();

stopAndlookAt (aPuck.position); }.

private function stopAndlookAt (thePoint :Vector3D) :void {.

mBoid.velocity = thePoint — mBoid. position;

mBoid.velocity = normalize (mBoid.velocity) * 0.01; } }.

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ это состояниС Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ всСгда. Но Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ, ΠΎΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ собой Π΄Ρ€ΡƒΠ³ΠΈΠ΅ состояния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, attack.

ΠœΠ΅Ρ‚ΠΎΠ΄ stopAndlookAt () высчитываСт Π½ΡƒΠΆΠ½ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΠ»ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Ρ€Π°. Π’Π΅ΠΊΡ‚ΠΎΡ€, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉΡΡ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ хоккСиста ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ ΡˆΠ°ΠΉΠ±Ρ‹, измСряСтся ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ thePoint — mBoid. position ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся для указания направлСния взгляда спортсмСна.

Если ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΊ Ρ…оккСисту, Ρ‚ΠΎ ΠΎΠ½ ΡƒΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ ΡˆΠ°ΠΉΠ±Π΅. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΎΡΡ‚авался Π½Π° ΠΌΠ΅ΡΡ‚Π΅, ΠΌΡ‹ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ, Π±Π»ΠΈΠ·ΠΊΠΎΠ΅ ΠΊ Π½ΡƒΠ»ΡŽ, Ρ‚. Π΅. Π½Π° 0.01. Π­Ρ‚ΠΎ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ спортсмСна Π½Π° ΠΌΠ΅ΡΡ‚Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° ΡˆΠ°ΠΉΠ±Ρƒ.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ ΠΌΠ°Ρ‚Ρ‡Ρƒ

Π­Ρ‚ΠΎ состояниС отвСтствСнно Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ³Ρ€ΠΎΠΊΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»ΠΈΡΡŒ Π½Π° ΡΠ²ΠΎΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈΡΡŒ Ρ‚Π°ΠΌ. Обновим наш класс Athlete:

public class Athlete {.

private var mInitialPosition: Vector3D; // стартовая позиция хоккСиста.

public function Athlete (thePosX :Number, thePosY: Number, theTotalMass: Number, theTeam: FlxGroup) { // (…).

mInitialPosition = new Vector3D (thePosX, thePosY); // ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π˜Π˜ состояния 'idle'.

mBrain.pushState (idle); }.

private function prepareForMatch () :void {.

mBoid.steering = mBoid. steering + mBoid. arrive (mInitialPosition, 80);

// Π½Π°Ρ…ΠΎΠΆΡƒΡΡŒ Π»ΠΈ я Π² ΡΠ²ΠΎΠ΅ΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ?

if (distance (mBoid.position, mInitialPosition) <= 5) {.

// я Π² ΡΠ²ΠΎΠ΅ΠΉ стартовой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

mBrain.popState ();

mBrain.pushState (idle); } } // (…) }.

НиТС Π²Ρ‹ ΡΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ добавлСния Π˜Π˜ Π² ΠΈΠ³Ρ€Ρƒ. НаТмитС ΠΊΠ»Π°Π²ΠΈΡˆΡƒ G ΠΈ ΠΈΠ³Ρ€ΠΎΠΊΠΈ пСрСмСстятся Π² ΡΠ»ΡƒΡ‡Π°ΠΉΠ½Ρ‹Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ΠΈ встанут Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅ мСста:

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ