Създаване на флаш игра (3)
Здравейте. Част две можете да намерите тук.

1. Ще започнем с правенето на "патроните". Нарисувайте вашия патрон, маркирайте го и го превърнете в мууви клип(името няма значение). Дуплицирайте го още 6 пъти (общо 7), маркирайте всичко и го превърнете в мууви клип с име (instanse) bullet_mc. В bullet_mc трябва да разделите всеки куршум на отделен лейър. След създайте фреймове, като на всеки следващ фрейм трябва да имате по един лейър по малко за да получите нещо като ефект на 'изчезване'. На всеки фрейм трябва да има код stop(); . Ето Видео
какво се очаква от вас :) (ползваите стоп-плей за по удобна работа).
2. Създайте 2 динамични текстови полета с имена : hit_txt , reload_txt . Удобно е те да са на отделен лейър. Освен това е добре да се намират в дъното на флаш-а, за да не пречат :) .
3. Импортнете този звук (презареждане) и този (празно оръжие). В библиотеката натиснете десен бутон на всеки от двата звука - Properites - и след това цъкнете Enable for ActionScirpt 2.0 (в Indentifier трябва да се появи съответно reload и empty).
Сега на сцената имаме новосъздадените динамични текстови полета, клипа с "патроните" и два нови звука в библиотеката, които са готови да работят с ActionScript2.0.
Остава да добавим кода, който ще накара всичко това да работи заедно Smile , той се намира на фрейма, на който писахме и в предишните уроци.
Веднага след stop(); добавете следното (можете да го добавите където искате, но е по прегледно ако променливите(това създаваме) се намират в началото на скрипта)

var hit:Number = 0;
var reload:Number = 0;
var reload_sound:Sound = new Sound();
reload_sound.attachSound("reload");
var need_sound:Sound = new Sound();
need_sound.attachSound("empty");

С този код създадохме променливите тип "число" hit и reload. Логично е, че с тях ще следим колко пъти мишката е била натисната и колко пъти е презареждано.
С reload_sound:Sound създаваме променлива тип "звук", а с reload_sound.attachSound("reload"); закачаме звука от библиотеката към тази променлива. Аналогично правим това и с need_sound.
Сега намерете тези редове :

_root.onMouseDown = function() {
shot_mc._visible = true;
shot_sound.start();
cursor2_mc.gotoAndPlay(2);
shot_mc._x = _xmouse;
shot_mc._y = _ymouse;
shot_mc.gotoAndPlay(2);
};

Този абзац трябва да го променим и да приеме следния вид :
_root.onMouseDown = function() {
if (bullet_mc._currentframe == "8") {
need_sound.start();
} else {
bullet_mc.gotoAndPlay(bullet_mc.nextFrame());
hit += 1;
hit_txt.text = hit;
shot_mc._visible = true;
shot_sound.start();
cursor2_mc.gotoAndPlay(2);
shot_mc._x = _xmouse;
shot_mc._y = _ymouse;
shot_mc.gotoAndPlay(2);
}
};

Добавяме :
if (bullet_mc._currentframe == "8") {
need_sound.start();
}
- Така при натискане на мишката, ако текущият фрейм на клипчето bullet_mc е 8 (фрейма, на който няма куршуми) единственото което ще стане е, че звука "празно оръжие" ще се възпройзведе.
else { - Ако текущият фрейм не е 8 (тоест, имаме все още "патрони") кода по доло ще се изпълни при натискане на мишката.
bullet_mc.gotoAndPlay(bullet_mc.nextFrame()); - праща клипчето с "патроните" един фрейм по напред.
hit += 1;
hit_txt.text = hit;
- Задаваме на промелнивата тип число hit да расте с 1, а на текстово поле hit_txt текста да е стойоността на hit.
Сега накрая на скрипта добавете :

var obj:Object = new Object();
obj.onKeyUp = function() {
if (Key.getCode() == Key.SPACE) {
reload += 1;
_root.reload_txt.text = reload;
reload_sound.start();
bullet_mc.gotoAndStop(1);
}
};
Key.addListener(obj);

var obj:Object = new Object(); - създаваме нов обект. Заради синтаксиса на АС2 е нужно когато искаме да имаме скрип, задействан от бутон например, да се добавя listener. В случая "закачаме" listener към обект (по доло е реда на listener-a)
obj.onKeyUp = function() { - Кода във фунцкията ще се изпълнява всеки път като се натисне копче.
if (Key.getCode() == Key.SPACE) { - сравняваме натиснатият бутон със Space. Ако натиснатият е Space се изпълнява кода по доло.
reload += 1;
_root.reload_txt.text = reload;
Задаваме на промелнивата тип число reload да расте с 1, а на текстово поле reload_txt текста да е стойоността на reload.
reload_sound.start(); - Пускаме звука, който е закачен на reload_sound
bullet_mc.gotoAndStop(1); - пращаме клипа с патроните един фрейм напред(получаваме ефект на изчезващ патрон).
Key.addListener(obj); - Закачаме Key слушател на обекта obj.
Ако има грешка някъде моля да ме извините .. Както виждате птиците все още не "умират" .. това ще стане в последната част 4.
Демо
Фла файл
Урока участва в играта на http://inbg.eu
На въпроси отговарям само тук :)
Наздраве.





/ Трябва да сте регистриран за да напишете коментар /