Помогни ни да направим Uroci.net по - богат! Добави урок

Flash игра - Тука има, тука няма

asdgjr   трудност:    видян: 10977


В този интересен урок, нашият потребител и Flash-фен sovа ви представя възможността да си направите интересната игра от типа "Тука има, тука няма" :)

И така, да започваме!

Урокът не обяснява самото 'рисуване' на графичните елементи на играта, така че се предполага, че това ви е ясно.

1. Отворете нов документ:

File > New > Flash Document > Ok

2. Настройте кадрите в секунда на 30, височината на 250, ширината на 500:

Modify > Document
.: Frame rate: 30
.: Height: 250
.: Width: 500
> Ok

2. Създайте чашките:

Съществуващия layer преименувайте на 'Chashi'.

Нарисувайте чашката. Можете да я направите както си искате, стига да е достатъчно широка че да покрива (бъдещото) топче. Селектирайте я и:

Modify > Convert to Symbol
.: Name: cup
.: Type: Movie clip
.: Registration: (долу посредата)

Properties >
.: Instatce Name: cup1_mc



Преместете cup1_mc вляво на сцената.
Копирайте cup1_mc (селект - Ctrl+C, Ctrl+V), нагласете втората чашка вдясно от първата (някъде в центъра на сцената) и й задайте име:

Properties >
.: Instatce Name: cup2_mc

Повторете същото и за третата чашка, но я кръстете cup3_mc.

Чашките трябва да са на едно ниво, затова ги селектирайте, натиснете Ctrl + K за да отоворите Align прозореца и там натиснете бутона, който се намира на първия ред, най-вдясно (Align bottom edge).



3. Направете топчето:

Скрийте layer-а с чашките (като кликнете на кръгчето под окото)

Създайте нов layer, задайте му за име 'Topche' и го сложете под скрития layer 'Chashi'



Топчето също си избирате как да го направите. Като го нарисувате го селекрирайте и:

Modify > Convert to Symbol
.: Name: ball
.: Type: Movie clip
.: Registration: (точно посредата)

Properties >
.: Instatce Name: ball_mc


Сложете топчето на такова вертикално ниво, така че шашите да го покриват. (Пробвайте да пускате и махате видимостта на слоя с чашите са да сверявате.) Не е нужно по хоризонталата топчето да съвпада с някоя от чашките, защото скриптът ще свърши тази работа.

4. Направете завесата:

По познатата вече процедура правите нов слой, слагате го над другите два и рисувате там.

Завесата трябва да е малко по-тясня от ширината на самия проект и да е малко по-висока от документа. Като я напрвите, селектвате я и:

Modify > Convert to Symbol
.: Name: zavesa
.: Type: Movie clip
.: Registration: (долу посредата)

Properties >
.: Instatce Name: zavesa_mc

5. Създайте сцената за край на играта:

Направете нов слой и му дайте за име 'Kraj'.
Кликнете с десния бутон на мишката върху втория кадър след слоя 'Kraj' и от контекстното меню изберете 'Insert Blank Keyframe'.



Сега напишете каквото искате, подходящо за край на играта.

Направете и друго динамично текстово поле и му дайте име 'score_txt'.

Text Tool (T) ....

Properties >

.: Text Type: Dynamic
.: Instance Name: score_txt

Така свършва рисуването. Сега скриптът....

6. В първия кадър (на който и да е слой) сложете този скрипт: / Това става в прозореца 'Actions', който може да бъде извикан от Window > Actions или като натиснете F9/


stop();
import mx.transitions.Tween;
import mx.transitions.easing.*;
yN = cup1_mc._y;
yNz = zavesa_mc._y;
hits = 0;
tries = 0;
function randf():Number {
rand = Number(random(3))+1;
switch (rand) {
case 1 :
return (cup1_mc._x);
case 2 :
return (cup2_mc._x);
case 3 :
return (cup3_mc._x);
}
}
function allow():Boolean {
if (cup1_mc._y == yN && cup2_mc._y == yN && cup3_mc._y == yN && zavesa_mc._y == yNz) {
return (true);
} else {
return (false);
}
}
cup1_mc.onPress = function() {
if (allow()) {
T1 = new Tween(this, "_y", Strong.easeOut, yN, this._y-50, .5, true);
}
T1.onMotionFinished = function() {
tries += 1;
if (ball_mc._x == cup1_mc._x) {
hits += 1;
}
T12 = new Tween(cup1_mc, "_y", Bounce.easeOut, cup1_mc._y, yN, 1, true);
T12.onMotionFinished = function() {
T13 = new Tween(zavesa_mc, "_y", Back.easeOut, yNz, yN+20, 1, true);
T13.onMotionFinished = function() {
ball_mc._x = randf();
T14 = new Tween(zavesa_mc, "_y", Strong.easeIn, yN+20, yNz, 1, true);
if (tries == 10) {
gotoAndStop(2);
}
};
};
};
};
cup2_mc.onPress = function() {
if (allow()) {
T2 = new Tween(this, "_y", Strong.easeOut, yN, this._y-50, .5, true);
}
T2.onMotionFinished = function() {
tries += 1;
if (ball_mc._x == cup2_mc._x) {
hits += 1;
}
T22 = new Tween(cup2_mc, "_y", Bounce.easeOut, cup2_mc._y, yN, 1, true);
T22.onMotionFinished = function() {
T23 = new Tween(zavesa_mc, "_y", Back.easeOut, yNz, yN+20, 1, true);
T23.onMotionFinished = function() {
ball_mc._x = randf();
T24 = new Tween(zavesa_mc, "_y", Strong.easeIn, yN+20, yNz, 1, true);
if (tries == 10) {
gotoAndStop(2);
}
};
};
};
};
cup3_mc.onPress = function() {
if (allow()) {
T3 = new Tween(this, "_y", Strong.easeOut, yN, this._y-50, .5, true);
}
T3.onMotionFinished = function() {
tries += 1;
if (ball_mc._x == cup3_mc._x) {
hits += 1;
}
T32 = new Tween(cup3_mc, "_y", Bounce.easeOut, cup3_mc._y, yN, 1, true);
T32.onMotionFinished = function() {
T33 = new Tween(zavesa_mc, "_y", Back.easeOut, yNz, yN+20, 1, true);
T33.onMotionFinished = function() {
ball_mc._x = randf();
T34 = new Tween(zavesa_mc, "_y", Strong.easeIn, yN+20, yNz, 1, true);
if (tries == 10) {
gotoAndStop(2);
}
};
};
};
};


7. В кадър две сложете:


score_txt.text = hits+"/"+tries;
score2_txt.text = hits+"/"+tries;
again_btn.onPress = function() {
gotoAndStop(1);
};


8. Тествайте играта, чрез Ctrl + Enter! Забавлявайте се!

Обръщение от автора на играта:
"Както забелязвате уроците за flash са доста гадни, защото ако объркате нещо малко накрая нищо не действа както трябва. Много внимавайте кое как пишете и правите за да няма проблеми."



Коментари (5)

menian на 01.12 2008 в 00:12ч.
не става, ако беше без тези завеси може би щеше да се получи или да беше по-подробно обяснено, но явно още не съм за това ниво. Все пак ако някой е успял да го направи да пише, да знам дали проблемът е в мен или човекът да си оправи урока
menian на 01.12 2008 в 00:40ч.
Видях си грешката! Хора като задавате имена и други неща на символите внимавайте къде ги слагате - средата на средата или долу по средата, тук се бях объркал. Но и човека направил урока не е дал някое инфо за завесата при край. Също така малко информация къде се променя в АС за броя на пробвания в играта също би било добре - в общи линии не е интересно
HattRiC на 10.04 2009 в 14:50ч.
6те ви помоля някои да ме намери в СКУПЕ МНОГО ВИ МОЛЯ !!! Skype : hattric2007
muxata на 07.06 2009 в 14:35ч.
Аз това го направих лесно е, но така и не разбрах за какво са теа завеси ....Без завесите пак става..
muxata на 07.06 2009 в 14:40ч.
И-и-и-и още нещо някой знае ли как мога да си направя игра като тази:
http://bgflash.com/flash/202
така, че като клакам определен брой пъти и накрая това дето го кликам да извършва определено действие ...[както пример това се ядосва]...... Ако някой знае да пише моля ви..........
:)

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: IT Новини