Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Adobe Flash. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°Ρ€ΠΊΠ°Π΄, Π³ΠΎΠ»ΠΎΠ²ΠΎΠ»ΠΎΠΌΠΎΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ³Ρ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ActionScriptΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 46

Автор Гэри Π ΠΎΠ·Π΅Π½Ρ†Π²Π΅ΠΉΠ³

bullet.removeMovieClip();

bullets.splice(i,1);

// ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ, Π½Π΅ ΠΏΠΎΠΏΠ°Π» Π»ΠΈ ΠΈΠ³Ρ€ΠΎΠΊ ΠΏΠΎ ΡˆΠ°Ρ€Ρƒ.

} else {

if (checkCollision(bullet)) {

bullet.removeMovieClip();

bullets.splice(i,1);

}

}

}

}

Ѐункция checkCollision (ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна Π΄Π°Π»Π΅Π΅) провСряСт всС ΡˆΠ°Ρ€Ρ‹ ΠΈ опрСдСляСт, Π½Π΅ находится Π»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… Π²Π±Π»ΠΈΠ·ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ снаряда. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ distance оцСниваСтся расстояниС ΠΎΡ‚ Ρ†Π΅Π½Ρ‚Ρ€Π° снаряда Π΄ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π° ΡˆΠ°Ρ€Π°. Если расстояниС составляСт ΠΌΠ΅Π½Π΅Π΅ 10 пиксСлов, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π²Π½ΠΎ Π΄ΠΈΠ°ΠΌΠ΅Ρ‚Ρ€Ρƒ ΡˆΠ°Ρ€Π°, выстрСл засчитываСтся ΠΊΠ°ΠΊ ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΉ. Π’ ΠΊΠ»ΠΈΠΏΠ΅ ΡˆΠ°Ρ€Π° происходит ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΊΠ°Π΄Ρ€Ρƒ 2, элСмСнт массива, связанный с ΡˆΠ°Ρ€ΠΎΠΌ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Π° функция moveBullet ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ снаряда.

...

Π‘ΠΎΠ²Π΅Ρ‚

ΠŸΠΎΡ‡Π΅ΠΌΡƒ для опрСдСлСния попадания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция distance, Π° Π½Π΅ hitTest? ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ функция hitTest Π²Ρ‹Π΄Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true Π² случаС, Ссли снаряд ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π² Π»ΡŽΠ±ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΡˆΠ°Ρ€Π°, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π² Π½ΠΈΡ‚ΠΊΡƒ, которая Π΅Π³ΠΎ Π΄Π΅Ρ€ΠΆΠΈΡ‚.

function checkCollision(bullet) {

// ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅ΠΌ всС ΡˆΠ°Ρ€ΠΈΠΊΠΈ.

for(j=balloons.length-1;j>=0;j–) {

balloon = _root[balloons!j].clip];

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, ΠΏΠΎΠΏΠ°Π»Π° Π»ΠΈ пуля.

if (distance(bullet,balloon) < 10) {

// ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΊΠ°Π΄Ρ€Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡˆΠ°Ρ€ взрываСтся.

balloon.gotoAndPlay(2);

// Π£Π±ΠΈΡ€Π°Π΅ΠΌ ΡˆΠ°Ρ€ ΠΈΠ· массива.

balloons.splice(j,1);

// Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ счСт.

score += 1;

// Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true.

return(true);

}

}

// Если ΠΈΠ³Ρ€ΠΎΠΊ Π½Π΅ ΠΏΠΎΠΏΠ°Π», Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false.

return(false);

}

Для опрСдСлСния Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ расстояния Π² пиксСлах ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΊΠ»ΠΈΠΏΠ°ΠΌΠΈ функция distance ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΎΠ½Π° опрСдСляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΊΠ»ΠΈΠΏΠΎΠ² ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ ΠΈ сохраняСт это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… dx ΠΈ dy. Π—Π°Ρ‚Π΅ΠΌ вычисляСт ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ суммы ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π€ΠΎΡ€ΠΌΡƒΠ»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π½ΠΈΠΆΠ΅.

function distance(clip1, clip2) {

// ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠΏΠ°ΠΌΠΈ.

dx = clip1._x – clip2._x;

dy = clip1._y – clip2._y;

return (Math.sqrt(dx*dx+dy*dy));

}

К свСдСнию

НаТатиС клавиши ΠΏΡ€ΠΎΠ±Π΅Π»Π° контролируСтся ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ½Π° располоТСна Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ поля, Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ экрана ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ прСдставляСт собой надпись Β«buttonΒ». КнопкС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

on (keyPress Β«<Space>Β») {

_root.shootBullet();

}

Π’ соотвСтствии с ΠΊΠΎΠ΄ΠΎΠΌ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΌΡ‹ΡˆΡŒΡŽ. Π’ любом случаС это Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ° располоТСна Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ поля. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΆΠ΄Π΅Ρ‚ наТатия клавиши ΠΏΡ€ΠΎΠ±Π΅Π»Π° ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° Π½Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ shootBullet.

...

Π‘ΠΎΠ²Π΅Ρ‚

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд Π½Π΅ ясно, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ клавиша ΠΏΡ€ΠΎΠ±Π΅Π»Π°, Π° Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Key.isDown, осущСствляСмая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ moveFox. Ѐункция Key.isDown провСряСт, Π½Π°ΠΆΠ°Ρ‚Π° Π»ΠΈ клавиша Π²ΠΎ врСмя ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ осущСствляСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅. Если ΠΈΠ³Ρ€ΠΎΠΊ быстро Π½Π°ΠΆΠΌΠ΅Ρ‚ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, это событиС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ Key.isDown. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ клавиша Π½Π°ΠΆΠ°Ρ‚Π°, ΠΈ выстрСла Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚. ИспользованиС ΠΊΠ½ΠΎΠΏΠΊΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‡Π΅Π½ΠΎ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ.

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ воспроизвСдСния Ρ€ΠΎΠ»ΠΈΠΊΠ° составляСт 30 ΠΊΠ°Π΄Ρ€ΠΎΠ² Π² сСкунду. Благодаря этому анимация воспроизводится Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Π²Π½ΠΎ. ИзмСнив ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ воспроизвСдСния Ρ€ΠΎΠ»ΠΈΠΊΠ°, Π²Π°ΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, придСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ пСрСмСщСния лисы, ΡˆΠ°Ρ€ΠΎΠ² ΠΈ снарядов. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ вашим оТиданиям.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности

БущСствуСт нСсколько способов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ ΠΈΠ³Ρ€Ρƒ Π±ΠΎΠ»Π΅Π΅ интСрСсной. Π¦Π²Π΅Ρ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ количСство ΠΎΡ‡ΠΊΠΎΠ². НапримСр, красныС ΡˆΠ°Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ 100 ΠΎΡ‡ΠΊΠΎΠ², синиС – 50 ΠΈ Ρ‚. Π΄. ΠžΡ‚ Ρ†Π²Π΅Ρ‚Π°, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ высота ΠΏΠΎΠ»Π΅Ρ‚Π° ΡˆΠ°Ρ€Π°. ΠŸΡ€ΠΈ этом Ρ‡Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ ΠΈ быстрСС Π»Π΅Ρ‚ΠΈΡ‚ ΡˆΠ°Ρ€, Ρ‚Π΅ΠΌ большС Π΅Π³ΠΎ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ использования ΡˆΠ°Ρ€ΠΎΠ². Π’ сущности, данная ΠΈΠ³Ρ€Π° Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΈΠ³Ρ€Ρ‹ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ "Sea Wolf", Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся ΠΏΠΎΡ€Π°ΠΆΠ΅Π½ΠΈΠ΅ самолСтов, ΠΈΠ»ΠΈ ΠΈΠ³Ρ€Ρ‹ ΠΏΡ€ΠΎ космичСских ΠΏΡ€ΠΈΡˆΠ΅Π»ΡŒΡ†Π΅Π². ВсС, Ρ‡Ρ‚ΠΎ трСбуСтся, β€“ это Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ.

Π‘Ρ‚Ρ€Π΅Π»ΡŒΠ±Π° с ΠΏΡ€ΠΈΡ†Π΅Π»ΠΎΠΌ

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»: Aimandshoot.fla

А Ρ‡Ρ‚ΠΎ, Ссли Π±Ρ‹ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΈΠ³Ρ€Π΅ Π³Π΅Ρ€ΠΎΠΉ стоял, Π° Π½Π΅ двигался ΠΈΠ· стороны Π² сторону? Π’ΠΎΠ³Π΄Π° ΠΎΠ½ Π±Ρ‹ ΠΌΠΎΠ³ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ соломинку Π² любом Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строго Π²Π²Π΅Ρ€Ρ…. А снаряды ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΠ»ΠΈΡΡŒ Π±Ρ‹ Π·Π°ΠΊΠΎΠ½Π°ΠΌ Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΈ ΠΈ, описав Π΄ΡƒΠ³Ρƒ, ΠΏΠ°Π΄Π°Π»ΠΈ Π±Ρ‹ Π½Π° зСмлю.

Π ΠΎΠ»ΠΈΠΊ Aimandshoot.fla прСдставляСт собой ΠΊΠ°ΠΊ Ρ€Π°Π· Ρ‚Π°ΠΊΡƒΡŽ ΠΈΠ³Ρ€Ρƒ. На рис. 10.4 ΠΏΠΎΠΊΠ°Π·Π°Π½ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΈΠ³Ρ€Ρ‹; ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, лиса находится Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ экрана ΠΈ стрСляСт ΠΏΠΎΠ΄ ΡƒΠ³Π»ΠΎΠΌ. Рассмотрим, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Рисунок 10.4. Π˜Π³Ρ€Π° Β«ΠŸΡ€ΠΈΡ†Π΅Π»ΡŒΡΡ ΠΈ выстрСли» Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΈΠ³Ρ€Ρƒ Β«Π‘Ρ‚Ρ€Π΅Π»ΡŒΠ±Π° ΠΏΠΎ ΡˆΠ°Ρ€Π°ΠΌΒ», ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π½Π΅Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ возмоТности

Π—Π°Π΄Π°Ρ‡Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Наша Π·Π°Π΄Π°Ρ‡Π° – ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΈΠ³Ρ€Ρ‹ ΠΎΠ΄ΠΈΠ½ элСмСнт ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ…. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, являСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ лисы Π²ΠΏΡ€Π°Π²ΠΎ ΠΈ Π²Π»Π΅Π²ΠΎ. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Π΅ клавиши со стрСлками Β«Π²Π»Π΅Π²ΠΎΒ» ΠΈ Β«Π²ΠΏΡ€Π°Π²ΠΎΒ» Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚, Π° лиса Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ экрана.

НовыС элСмСнты – Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ†Π΅Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ»ΠΈ Π·Π°ΠΊΠΎΠ½Ρƒ Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΡ‹ΡˆΠΈ ΠΈΠ³Ρ€ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡ†Π΅Π»ΠΈΡ‚ΡŒΡΡ, ΠΈ соломинка повСрнСтся Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. ПослС выстрСла пуля ΡƒΠΏΠ°Π΄Π΅Ρ‚ Π½Π° зСмлю.

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄

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

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° ΠΊΠ»ΠΈΠΏΠ° соломинки Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ. Оно Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСт мСсто Π²Ρ‹Π»Π΅Ρ‚Π° снаряда ΠΈ количСство пиксСлов ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ снаряд пСрСмСщаСтся Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ влияниС Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. Π’ Π½Π°Ρ‡Π°Π»Π΅ двиТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-ΠΏΡƒΠ»ΠΈ Π΅Π³ΠΎ траСктория слабо измСняСтся ΠΏΠΎΠ΄ дСйствиСм Π³Ρ€Π°Π²ΠΈΡ‚Π°Ρ†ΠΈΠΈ. Однако с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠ°Π΄Ρ€ΠΎΠΌ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ падСния увСличиваСтся. ΠŸΡƒΠ»Ρ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠΌΠΏΡƒΠ»ΡŒΡ ΠΏΡ€ΠΈ запускС, поэтому ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π²Π²Π΅Ρ€Ρ…, Π½ΠΎ всС ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π΅Π΅ кинСтичСской энСргии. Π—Π°Ρ‚Π΅ΠΌ пуля всС быстрСС ΠΈ быстрСС Π½Π°Ρ‡Π½Π΅Ρ‚ ΠΏΠ°Π΄Π°Ρ‚ΡŒ Π²Π½ΠΈΠ·.

Π­Ρ‚ΠΎ явлСниС называСтся ускорСниСм свободного падСния ΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ составляСт ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 32 Ρ„ΡƒΡ‚Π°/с2 (9,8 ΠΌ/с2). Π’ ΠΌΠΈΡ€Π΅ ΠΈΠ³Ρ€Ρ‹ ускорСниС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Ρ€ΠΎΠ»ΠΈΠΊΠ°

ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ соломинка прСдставляСт собой ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ»ΠΈΠΏ. Благодаря этому ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ нСзависимо ΠΎΡ‚ лисы.

Клип лисы ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΈΠ³Ρ€ΠΎΠΉ Π½Π΅ содСрТит Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ двиТСния. Он являСтся Π½ΠΈ Ρ‡Π΅ΠΌ ΠΈΠ½Ρ‹ΠΌ, ΠΊΠ°ΠΊ элСмСнтом Ρ„ΠΎΠ½Π° ΠΈΠ³Ρ€Ρ‹, хотя ΠΈ располоТСн ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΊΠ»ΠΈΠΏΠ° соломинки.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

НСкоторыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ функциям ΠΈΠ³Ρ€Ρ‹ Β«Π‘Ρ‚Ρ€Π΅Π»ΡŒΠ±Π° ΠΏΠΎ Π²ΠΎΠ·Π΄ΡƒΡˆΠ½Ρ‹ΠΌ ΡˆΠ°Ρ€Π°ΠΌΒ», поэтому Π½Π΅Ρ‚ смысла Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. Π­Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ initGame, newBalloon, moveBalloons, checkCollision ΠΈ distance.

Одна ΠΈΠ· Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΈΠ³Ρ€Π΅ – aimStraw. Она Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ moveFox ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈΠ· ΠΊΠ»ΠΈΠΏΠ° Β«actionsΒ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

onClipEvent(load) {

_root.initGame();

}

onClipEvent(enterFrame) {

_root.newBalloon ();

_root.moveBalloons();

_root.aimStraw();

_root.moveBullets();

}

Π—Π°Π΄Π°Ρ‡Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ aimStraw – Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΡƒΠ³ΠΎΠ» ΠΏΡ€ΠΈΡ†Π΅Π»Π° ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΊΠ»ΠΈΠΏΠ° соломинки. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ³Π»Π° сохраняСтся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ strawRadians, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ shootBullet. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΡƒΠ³ΠΎΠ» ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ. Они хранятся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… dx ΠΈ dy Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π—Π°Π΄Π°Π² эти значСния Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Math.atan2, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ³Π»Π° Π² Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ….

...

Π‘ΠΎΠ²Π΅Ρ‚

Π£Π³Π»Ρ‹ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡŽΡ‚ΡΡ Π² Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ… ΠΈΠ»ΠΈ градусах. ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΊΡ€ΡƒΠ³ Π² Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ 6,28 (2Ο€), Π² градусах – 360. Π Π°Π΄ΠΈΠ°Π½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Flash Π² матСматичСских функциях Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Math.sin ΠΈ Math.cos, Π° градусы – Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΊΠ»ΠΈΠΏΠΎΠ² _rotation. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ значСния ΠΈΠ· ΠΎΠ΄Π½ΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ† измСрСния Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

...

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Ѐункция Math.atan2 являСтся прСкрасным инструмСнтом для программирования ΠΈΠ³Ρ€. АрктангСнс (Π²ΠΎ Flash – Math.atan) прСдставляСт собой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰ΡƒΡŽ ΡƒΠ³ΠΎΠ» Π½Π°ΠΊΠ»ΠΎΠ½Π° Π»ΠΈΠ½ΠΈΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠΉ Π½Π°ΠΊΠ»ΠΎΠ½ опрСдСляСтся двумя Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ арктангСнса ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ этих Ρ‚ΠΎΡ‡Π΅ΠΊ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ³Π»Π° Π½Π°ΠΊΠ»ΠΎΠ½Π°. Однако ΠΏΡ€ΠΈ использовании арктангСнса Π½Π΅ учитываСтся, какая Ρ‚ΠΎΡ‡ΠΊΠ° Π»ΠΈΠ½ΠΈΠΈ являСтся Π°Π½ΠΊΠ΅Ρ€ΠΎΠΌ, Π° какая ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΌ ΡƒΠ³ΠΎΠ». ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠ³Π»Ρ‹, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‡Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ нСсколько условных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Ѐункция Math.atan2(y,x) вычисляСт ΡƒΠ³ΠΎΠ» Π½Π°ΠΊΠ»ΠΎΠ½Π° Π»ΠΈΠ½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x, y,). Π’Π΅ΠΌ самым Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° нСоднозначности.

function aimStraw() {

// ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π½Π°Ρ‡Π°Π»Π°

// ΠΈ ΠΊΠΎΠ½Ρ†Π° Π»ΠΈΠ½ΠΈΠΈ.

dx = _xmouse – straw._x;

dy = _ymouse – straw._y;