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

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

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

Рисунок 9.5. Клип Β«bad appleΒ» состоит ΠΈΠ· 20 ΠΊΠ°Π΄Ρ€ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€ содСрТит ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ яблока ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· согласных Π·Π²ΡƒΠΊΠΎΠ²

Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Symbol Linkage Properties ΠΎΠ±ΠΎΠΈΠΌ ΠΊΠ»ΠΈΠΏΠ°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ свойство Export for ActionScript ΠΈ присвоСн ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Β«good appleΒ» ΠΈΠ»ΠΈ Β«bad appleΒ».

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

Код ΠΊΠ»ΠΈΠΏΠ° Β«actionsΒ» Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ использовался Π² ΠΈΠ³Ρ€Π΅ «Поймай яблоко». Π˜Π·ΠΌΠ΅Π½ΡΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ initGame Π±Ρ‹Π»ΠΎ внСсСно лишь ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: число ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… яблок Π±Ρ‹Π»ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΎ Π΄ΠΎ 50.

function initGame() {

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, хранящих

// Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго яблока.

firstApple = 1;

lastApple = 0;

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, хранящСй число ΠΏΠΎΠΉΠΌΠ°Π½Π½Ρ‹Ρ… яблок.

score = 0;

// Π—Π°Π΄Π°Π΅ΠΌ ΠΎΠ±Ρ‰Π΅Π΅ количСство яблок.

totalApples = 50;

// Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ падСния ΠΈ счСтчик Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ появлСниями яблок.

timeSinceLastApple = 0;

appleSpeed = 5;

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ экзСмпляр ΠΊΠ»ΠΈΠΏΠ°, содСрТащий лису.

attachMovie("running fox","fox",999999);

fox._x = 275;

fox._y = 300;

}

Ѐункция moveFox ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совпадаСт с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈΠ³Ρ€Ρ‹ «Поймай яблоко», поэтому Π½Π΅Ρ‚ смысла ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Π΅Π΅ здСсь. Ѐункция dropNewApple Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ яблоко Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΏΠ°.

function dropNewApple() {

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, ΠΏΡ€ΠΎΡˆΠ΅Π» Π»ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

if (timeSinceLastApple > 20) {

// БросаСм яблоко, Ссли Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΎ

// ΠΈΡ… ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ допустимоС количСство.

if (lastApple < totalApples) {

// УстанавливаСм Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ сброса яблока Π² 10 %.

if (Math.random() < .1) {

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-яблоко.

lastApple++;

if (Math.random() < .5) {

// Π’ 50 % случаСв яблоко ΠΏΠ»ΠΎΡ…ΠΎΠ΅.

attachMovie( "bad apple", "apple"+lastApple, lastApple);

_root["apple"+lastApple].type = "bad";

} else {

// Π’ 50 % случаСв яблоко Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅.

attachMovie( "good apple", "apple"+lastApple, lastApple);

_root["apple"+lastApple].type = "good";

}

f=int(Math.Random()*_root["apple"+

lastApple]._totalFrames) + 1;

trace(f);

_root["apple"+lastApple].gotoAndStop(f);

_root["apple"+lastApple]._x = Math.random()*490+30;

_root["apple"+lastApple]._y = 0;

// БбрасываСм счСтчик Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания.

timeSinceLastApple = 0;

// Π£Π²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ падСния яблока.

if (appleSpeed < 10) appleSpeed += .5;

}

}

}

// Если Π½Π΅ бросили яблоко, ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°Π΅ΠΌ это событиС.

timeSinceLastApple++;

}

Ѐункция dropNewApple создаСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ type для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠΏΠ°. Π₯отя Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ»ΠΈΠΏΡ‹ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя сцСнария, для Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ пСрСмСнная type для гласных Π·Π²ΡƒΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«goodΒ», для согласных – bad". Данная пСрСмСнная провСряСтся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ moveApples, ΠΊΠΎΠ³Π΄Π° ΠΈΠ³Ρ€ΠΎΠΊ Π»ΠΎΠ²ΠΈΡ‚ яблоко. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΠΎΠΉΠΌΠ°Π» Π»ΠΈ ΠΈΠ³Ρ€ΠΎΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ яблоко ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ…ΠΎΠ΅.

function moveApples() {

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ всС лСтящиС яблоки.

for (i=firstApple;i<=lastApple;i++) {

// ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ мСстополоТСниС яблока.

x = _root["apple"+i]._x;

o = _root["apple"+i]._y + appleSpeed;

// ВыясняСм, достигло Π»ΠΈ яблоко Π·Π΅ΠΌΠ»ΠΈ.

if (y > 400) {

removeApple(i);

// Попало Π»ΠΈ Π² яблоко ΠΊΠΎΡ€Π·ΠΈΠ½Ρƒ?

} else if ((Math.abs(y-fox._y) < 10) and (Math.abs(x-fox._x) < 25)) {

if (_root["apple"+i].type == "good") {

// Если яблоко Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ ΠΎΡ‡ΠΊΠΈ.

score += 1;

} else {

// Если ΠΏΠ»ΠΎΡ…ΠΎΠ΅ – ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅ΠΌ.

score -= 1;

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ количСство ΠΎΡ‡ΠΊΠΎΠ²

// Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ числом.

if (score < 0) score = 0;

}

removeApple(i);

// ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ яблоко.

} else {

_root["apple"+i]._y = y;

}

}

}

Ѐункция removeApple Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΈΠ³Ρ€Π΅ «Поймай яблоко».

К свСдСнию

Как ΠΈ Π² ΠΈΠ³Ρ€Π΅ «Поймай яблоко» ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ послС ΠΊΠ°Π΄Ρ€Π° Β«playΒ» находятся соотвСтствСнно ΠΊΠ°Π΄Ρ€Ρ‹ Β«startΒ» ΠΈ Β«game overΒ». НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎ тСкстовой области Β«scoreΒ» ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…, упомянутых Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «К свСдСнию» для ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΈΠ³Ρ€Ρ‹.

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

Π­Ρ‚ΠΎ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ ΠΈΠ³Ρ€Π° ΠΈ, ΠΊ соТалСнию, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ лишь для ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π΄Π΅Ρ‚Π΅ΠΉ, Π΅Ρ‰Π΅ Π½Π΅ Π²Ρ‹ΡƒΡ‡ΠΈΠ²ΡˆΠΈΡ… Π°Π»Ρ„Π°Π²ΠΈΡ‚. Однако Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ содСрТимоС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Π΄Ρ€Π°, содСрТащСго Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ…ΠΎΠ΅ яблоко. Одним ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ яблока, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° Π½Π΅ΠΌ ΠΌΠΎΠ³Π»Π° ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ длинная Ρ„Ρ€Π°Π·Π°.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ для Π΄Π΅Ρ‚Π΅ΠΉ Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ возраста ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ яблоки, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π³Π»Π°Π³ΠΎΠ»Ρ‹ ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅. Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ ΠΈ Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ числа, числа ΠΊΡ€Π°Ρ‚Π½Ρ‹Π΅ Ρ‚Ρ€Π΅ΠΌ ΠΈΠ»ΠΈ сокращаСмыС Π΄Ρ€ΠΎΠ±ΠΈ. Π”Π΅Ρ‚ΠΈ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ возраста ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ страны ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚ΠΈΠ½Π΅Π½Ρ‚Π° ΠΈΠ»ΠΈ названия Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π². Π˜Π³Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ, Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° вопросы ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ "Π²Π΅Ρ€Π½ΠΎ/Π½Π΅Π²Π΅Ρ€Π½ΠΎ".

Π‘ΠΏΠ»Π°Π² Π½Π° Π±Π°ΠΉΠ΄Π°Ρ€ΠΊΠ΅

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

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ‹ ΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ΄ Π΄Π²ΡƒΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΈΠ³Ρ€, создадим ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд ΠΈΠ³Ρ€Ρƒ. Π’ этой ΠΈΠ³Ρ€Π΅ наш Π³Π΅Ρ€ΠΎΠΉ лиса Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ»Ρ‹Ρ‚ΡŒ ΠΏΠΎ Ρ€Π΅ΠΊΠ΅ Π½Π° Π±Π°ΠΉΠ΄Π°Ρ€ΠΊΠ΅, избСгая прСпятствия ΠΈ ΡΡ‚Π°Ρ€Π°ΡΡΡŒ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Для трансформации ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΈΠ³Ρ€ Π² эту, ΠΊΠ°ΠΊ Π½ΠΈ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ усилий. И Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ. Взглянув Π½Π° рис. 9.6, Π²Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, насколько данная ΠΈΠ³Ρ€Π° отличаСтся ΠΎΡ‚ ΠΈΠ³Ρ€ "Поймай яблоко".

Рисунок 9.6. Π˜Π³Ρ€Π° Β«Π‘ΠΏΠ»Π°Π² Π½Π° Π±Π°ΠΉΠ΄Π°Ρ€ΠΊΠ΅Β» состоит ΠΈΠ· Π±Π°ΠΉΠ΄Π°Ρ€ΠΊΠΈ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ экрана ΠΈ ΠΊΠ°ΠΌΠ½Π΅ΠΉ ΠΈ Π²Π΅Ρ‚ΠΎΠΊ Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², нСсущихся Π΅ΠΉ навстрСчу

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

Одной ΠΈΠ· Π·Π°Π΄Π°Ρ‡ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ являСтся созданиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ иллюзии Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ°. Π₯отя Π±Π°ΠΉΠ΄Π°Ρ€ΠΊΠ° остаСтся Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ экрана, Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ° складываСтся Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° двиТСтся Π²Π½ΠΈΠ· ΠΏΠΎ Ρ€Π΅ΠΊΠ΅. Π­Ρ‚ΠΎ достигаСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π΄Π²ΠΈΠ³Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ экрану.

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ взята ΠΈΠ· Π΄Π²ΡƒΡ… ΠΈΠ³Ρ€, рассмотрСнных Ρ€Π°Π½Π΅Π΅ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅. Однако, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΈΠ³Ρ€, ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ придСтся всС, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π‘Ρ‡Π΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ количСство Π½Π°Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΎΡ‡ΠΊΠΎΠ², Π° количСство столкновСний Π±Π°ΠΉΠ΄Π°Ρ€ΠΊΠΈ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π§Π΅ΠΌ большС ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ столкновСний, Ρ‚Π΅ΠΌ скорСС закончится ΠΈΠ³Ρ€Π°.

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

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΊΠΎΠ΄ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ двигались Π½Π΅ Π²Π½ΠΈΠ·, Π° Π²Π²Π΅Ρ€Ρ…. Π”Π°Π»Π΅Π΅, вСсь ΠΊΠΎΠ΄, связанный со столкновСниями, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ привСсти ΠΊ ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅, Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ любоС столкновСниС ΠΊΠ°ΠΊ ΠΏΠ»ΠΎΡ…ΠΎΠ΅.

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹. ЛСвая ΠΈ правая Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ, отобраТая ΠΊΠ°ΠΌΠ½ΠΈ Π² Ρ€Π΅ΠΊΠ΅. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ большС, ΠΈ Π½Π° экранС ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ большС ΠΊΠ°ΠΌΠ½Π΅ΠΉ.

ВмСсто постСпСнного ускорСния ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ°Π΄Π°Ρ‚ΡŒ Π΄ΠΎ 0 ΠΏΡ€ΠΈ столкновСнии. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΈΠ³Ρ€ΠΎΠΊ почувствуСт ΡƒΠ΄Π°Ρ€. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΈΠ³Ρ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½ΠΈΠ΅.

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

ВмСсто ΠΊΠ»ΠΈΠΏΠ° Β«applesΒ» ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠΏ Β«rocksΒ». Π’ Ρ€ΠΎΠ»ΠΈΠΊΠ΅ Riverkayak.fla ΠΊΠ»ΠΈΠΏ Β«rocksΒ» состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΊΠ°Π΄Ρ€ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€ содСрТит Π°Π½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, состоящСС ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ элСмСнта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π₯отя ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ камСнь находится Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅ ΠΊΠ»ΠΈΠΏΠ°, анимация воспроизводится Π² графичСском элСмСнтС. Запустив Ρ€ΠΎΠ»ΠΈΠΊ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅ Π²ΠΎΠΊΡ€ΡƒΠ³ камня Ρ‚Π΅Ρ‡Π΅Ρ‚ Π²ΠΎΠ΄Π°.

Клип лисы, ловящСй яблоки, Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° ΠΊΠ»ΠΈΠΏ лисы Π² Π±Π°ΠΉΠ΄Π°Ρ€ΠΊΠ΅. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ лису Π² Π±Π°ΠΉΠ΄Π°Ρ€ΠΊΠ΅, ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠΉ Π²Π½ΠΈΠ· ΠΏΠΎ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ ΠΈ с вСслами Π½Π°Π΄ Π²ΠΎΠ΄ΠΎΠΉ. Π—Π°Ρ‚Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΊΠ°Π΄Ρ€Ρ‹ "left" ΠΈ "right", содСрТащиС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠΉ Π±Π°ΠΉΠ΄Π°Ρ€ΠΊΠΈ ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ вСсла, ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π² Π²ΠΎΠ΄Ρƒ. На рис. 9.7 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° лиса, ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π²ΠΏΡ€Π°Π²ΠΎ. ПослС этого Π² ΠΊΠ°Π΄Ρ€Π΅ 4 запускаСтся анимация "spill", ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΡƒΠ΄Π°Ρ€ Π±Π°ΠΉΠ΄Π°Ρ€ΠΊΠΈ ΠΎ камСнь.

Рисунок 9.7. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°Π΄Ρ€ Ρ€ΠΎΠ»ΠΈΠΊΠ° лисы содСрТит ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ лисы, ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ Π²ΠΏΡ€Π°Π²ΠΎ

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ»ΠΈΠΏΡ‹ Β«rocksΒ» ΠΈ Β«foxΒ» Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Ρ€ΠΎΠ»ΠΈΠΊ, ΠΈΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΊΠ»ΠΈΠΏΠ°ΠΌ Β«applesΒ» ΠΈ Β«foxΒ» ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΈΠ³Ρ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π² ΠΏΠ°Π½Π΅Π»ΠΈ Linkage Properties.

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

ΠšΠ»ΠΈΠΏΡƒ Β«actionsΒ» Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ сцСнарий, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… ΠΈΠ³Ρ€Π°Ρ… Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Ρ‹, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌΠ΅Π½Π° Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² соотвСтствии с Ρ‚Π΅ΠΌΠΎΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹.

onClipEvent (load) {

_root.initGame ();

}

onClipEvent (enterFrane) {

_root.moveFox();

_root.newRock();

_root.moveRocks();

}

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡˆΠΊΠ°Π»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Π°ΠΌ Π·Π½Π°ΠΊΠΎΠΌΡ‹. НСкоторыС части ΠΊΠΎΠ΄Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ функциям, рассмотрСнным Ρ€Π°Π½Π΅Π΅, Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°. Ѐункция initGame запускаСт ΠΈΠ³Ρ€Ρƒ со ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ тСчСния Ρ€Π΅ΠΊΠΈ 0. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ лисы располоТСно Π½Π΅ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части экрана, Π° Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅.

function initGame () {

// НомСра ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ послСднСго камня.

firstRock = 1;

lastRock = 0;

// Π—Π°Π΄Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ количСство столкновСний.

spills = 0;

// ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠ°ΠΌΠ½Π΅ΠΉ.

totalRocks = 50;

// ВрСмя, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π΅ со Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ появлСния послСднСго камня.

timeSinceLastRock = 0;

// Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π΅ΠΊΠΈ.

TimeSinceLastRock = 0;

riverSpeed = 0;

// ΠŸΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΏΠΎΠ»Π΅ ΠΊΠ»ΠΈΠΏ лисы.

attachMovief "kayaking fox", "fox", 999999);

fox._x = 275;

fox._y = 200;

}

Как ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, функция moveFox опрСдСляСт, Π½Π°ΠΆΠ°Ρ‚Ρ‹ Π»ΠΈ клавиши со стрСлками Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ. ΠšΡ€ΠΎΠΌΠ΅ этого, ΠΎΠ½Π° провСряСт, воспроизводится Π»ΠΈ анимация Β«spillΒ», ΠΈ Ссли ΠΎΡ‚Π²Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиш. ВмСсто ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° изобраТСния ΠΊΠΎΠ΄ Π·Π°Π΄Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊΠ»ΠΈΠΏΠ° "fox" ΠΊ ΠΊΠ°Π΄Ρ€Π°ΠΌ, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌ "left" ΠΈΠ»ΠΈ "right". ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΊΡƒ "still" ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π±Π°ΠΉΠ΄Π°Ρ€ΠΊΡƒ, ΠΏΠ»Ρ‹Π²ΡƒΡ‰ΡƒΡŽ Π²ΠΏΠ΅Ρ€Π΅Π΄.

function moveFox () {

if (fox._currentFrame > 4) {

// Π’ΠΎ врСмя столкновСния Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиш игнорируСтся.

dx = 0;

} else if (Key.isDown(Key.RIGHT)) {

// ΠŸΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Π΅ΠΌ лису Π²ΠΏΡ€Π°Π²ΠΎ.

dx = riverSpeed;

fox.gotoAndStop("left");

} else if (Key.isDown(Key.LEFT)) {

// ΠŸΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Π΅ΠΌ лису Π²Π»Π΅Π²ΠΎ.

dx = -riverSpeed;

fox.gotoAndStop("right");

} else {

// Клавиша Π½Π΅ Π½Π°ΠΆΠ°Ρ‚Π°.

dx = 0;

fox.gotoAndStop("still");

}

// ΠŸΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Π΅ΠΌ лису ΠΈ отслСТиваСм,