Преглед на урок

Flash игра "Тука има, тука нема"

Flash игра "Тука има, тука нема"




В този интересен урок, нашият потребител и 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/

[color=blue]
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. В кадър две сложете:

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


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

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


Трябва да сте получили ето това:

[html]
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="450" height="450" title="studio-bg">
<param name="movie" value="http://itschool.bg/application/uploads/tutorials/img/f/imanema/imanema.swf" />
<param name="quality" value="high" />
<embed src="http://itschool.bg/application/uploads/tutorials/img/f/imanema/imanema.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="450" height="450"></embed>
</object>[/html]

Автор: sova


Ако урокът ви допада, споделете го в Twitter и Facebook или го запазете в Delicious.




Урокът е добавен от: bubsss

Коментари

D.Stoqnova

Syper tryden yrok ni6to ne mi se poly4ava :(

Добави коментар

Трябва да сте регистиран потребител за може да оставяте коментари! Направете своята безплатна регистрация още сега.