понедельник, 24 января 2011 г.

Урок 11.6. Меню

Это как не печально последний урок( Написать больше у меня не хватит вдохновения и с каждым уроком я всё больше запутываюсь сам и запутываю Вас. Но этот урок я постараюсь объяснить полностью. Я надеюсь, что менюшка у Вас выйдет покрасивее, чем у меня, но тем не менее вот:





Первое, что нам нужно сделать – это нарисовать меню. Обязательно у Вас должны быть 2 текстовых поля с именами health_txt и score_txt. Конвертируем меню с текст. полями в мувиклип, называем menu_mc и Export for ActionScript. Дальше ставим своё меню в координаты x=0, y=0, заходим в меню (двойной клик) и перемещаем как Вам нужно относительно сцены (Просто чтобы Вам потом не пришлось двигать меню в какие-то координаты при помощи кода, а по умолчанию координаты 0,0).
Так, отлично. Открываем класс player. Пишем там, где мы объявляли переменные:
public var Score, health;
Дальше, под
friction=0.94;//замедление
moveSpeed=1;
rotatSpeed=1;
Пишем:
health=100;
Score=0;
С этим классом закончили. Переходим к классу bot_bullet
Находим функцию check_hit() и после
//отнимаем жизни у игрока
Пишем:
game.Player.health-=1;
game.Menu_mc.update_TextFields();
Можно написать вместо 1 другое число (это сколько health points снимится за одно попадание)
Открываем класс bot, тоже находим функцию check_hit(), только уже в классе man и после строки
game.bullets_container.getChildAt(i).self_destruction();
пишем:
game.Player.Score+=3;
game.Menu_mc.update_TextFields();
Осталось всего 2 класса) (Теперь, Вы, наверное, понимаете, почему я не писал все изменения в уроках)
Опять находми функцию check_hit() и после
if(this.Marker.hitTestObject(game.Player.Marker)){
kill=true;
вставляем
game.Player.Score+=5;
а после 2ого kill=true; пишем
game.Player.Score-=2;
Ну и наконец, чтобы тексты обновились, в if(kill==true){
Пишем
game.Menu_mc.update_TextFields();
Остался последний класс - game!)
Объявляем переменную Menu_mc:
public var Player, Map, Menu_mc;
и в самом конце, после
Player=new player(this);
пишем
Menu_mc=new menu_mc(this);
Ха-ха, я Вас обшутил, нам же ещё и класс menu_mc нужно написать) Но на этот раз это реально последнее, что нам нужно сделать. Создаём новый документ ActionScript File, называем menu_mc. Код:
package {
 import flash.display.Sprite;
 import flash.events.Event;
 public class menu_mc extends Sprite {
  private var game;
  public function menu_mc(Game) {
   game=Game;
   this.addEventListener(Event.ADDED_TO_STAGE, addToStg);
   game.general_container.addChildAt(this,4);   
  }
  private function addToStg(e:Event){
   this.removeEventListener(Event.ADDED_TO_STAGE, addToStg);
   update_TextFields();
  }
  public function update_TextFields(){
   this.health_txt.text=game.Player.health;
   this.score_txt.text=game.Player.Score;
  }
 }
}
Всё! Ну а главное меню и всякие мелкие доработки Вам придётся писать самим. Если Вы внимательно прочитали уроки, то проблем не должно возникнуть. Что там осталось написать? Чтобы не было отрицательных жизней, чтобы можно было начать новую игру, (вставить ссылку на мой блог xD) кажется всё. Можно ещё сделать разные настройки: звук, графика… Но это уже на любителя. Это был последний урок серии “Создание игры” (Уроки 11 серии). Жду дельных предложений в комментариях к этому посту на счёт идей уроков или можете написать мне на e-mail. Вы думали это всё? А вот и нет!) …Исходник!!! :) Ну, ладно, пока!

1 комментарий: