Первый опыт

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

Вот код...Укажите где, что можно оптимизировать и улучшить.

kill.text = "V = 0";
life.text = "X = 5";
 
var zel_color:Boolean = false ;
var oran_color:Boolean = false ;
var kras_color:Boolean = false ;
var vulich:uint = 0;
var life_p:int = 5;
 
 
btn1.addEventListener(MouseEvent.CLICK , Kraslich);
btn2.addEventListener(MouseEvent.CLICK , Orglich);
btn3.addEventListener(MouseEvent.CLICK , Zellich);
 
 
 
function Kraslich(e:MouseEvent):void
{
kras_color = true ;
mess.text = "Ловите красных!!!";
}
 
function Orglich(e:MouseEvent):void
{
oran_color = true ;
mess.text = "Ловите оранжевых!!!";
}
 
function Zellich(e:MouseEvent):void
{
zel_color = true ;
mess.text = "Ловите зеленых!!!";
}
 
en11.addEventListener (MouseEvent.CLICK , enmy11);
en12.addEventListener (MouseEvent.CLICK , enmy12);
en13.addEventListener (MouseEvent.CLICK , enmy13);
 
function enmy11 (e:MouseEvent):void
{
  if (zel_color == true)
  {
   kras_color = false ;
   oran_color = false ;
   vulich+=1;
   kill.text = "V = " + vulich;
  }
  if (zel_color == false)
  {
   life_p-=1;
   life.text = "X = " + life_p;
  }
 
  if (life_p<0)
  { stop ();
   mess.text = "Поражение !!!";
   en11.stop ();
   en11.x = 0 ;
   en11.y = 0 ;
   en12.stop ();
   en12.x = 0 ;
   en12.y = 0 ;
   en13.stop ();
   en13.x = 571 ;
   en13.y = 81 ;
  }
  if (vulich>25)
  {stop ();
   mess.text = "Победа !!!";
   en11.stop ();
   en11.x = 0 ;
   en11.y = 0 ;
   en12.stop ();
   en12.x = 0 ;
   en12.y = 0 ;
   en13.stop ();
   en13.x = 571 ;
   en13.y = 81 ;
 
   }
}
 
function enmy12 (e:MouseEvent):void
{
  if (kras_color == true)
  {
   zel_color = false ;
   oran_color = false ;
   vulich+=1;
   kill.text = "V = " + vulich;
  }
  if (kras_color == false)
  {
   life_p-=1;
   life.text = "X = " + life_p;
  }
  if (life_p<0)
  { stop ();
   mess.text = "Поражение !!!";
   en11.stop ();
   en11.x = 0 ;
   en11.y = 0 ;
   en12.stop ();
   en12.x = 0 ;
   en12.y = 0 ;
   en13.stop ();
   en13.x = 571 ;
   en13.y = 81 ;
 
  }
  if (vulich>25)
  {stop ();
   mess.text = "Победа !!!";
   en11.stop ();
   en11.x = 0 ;
   en11.y = 0 ;
   en12.stop ();
   en12.x = 0 ;
   en12.y = 0 ;
   en13.stop ();
   en13.x = 571 ;
   en13.y = 81 ;
 
   }
}
 
function enmy13 (e:MouseEvent):void
{
  if (oran_color == true)
  {
   zel_color = false ;
   kras_color = false ;
   vulich+=1;
   kill.text = "V = " + vulich;
  }
  if (oran_color == false)
  {
   life_p-=1;
   life.text = "X = " + life_p;
  }
  if (life_p<0)
  { stop ();
   mess.text = "Поражение !!!";
   en11.stop ();
   en11.x = 0 ;
   en11.y = 0 ;
   en12.stop ();
   en12.x = 0 ;
   en12.y = 0 ;
   en13.stop ();
   en13.x = 571 ;
   en13.y = 81 ;
 
  }
  if (vulich>25)
  {stop ();
   mess.text = "Победа !!!";
   en11.stop ();
   en11.x = 0 ;
   en11.y = 0 ;
   en12.stop ();
   en12.x = 0 ;
   en12.y = 0 ;
   en13.stop ();
   en13.x = 571 ;
   en13.y = 81 ;
   }
}
Исходник: 

Комментарии

Аватар пользователя Anti_Karhad

А смысл игры????

Аватар пользователя WhitePhoenix

тоже делал в первые дни изучения flash такие игры)только делал стрельбу по шарикам)в вашей работе можно кое-что улучшить,сделайте чтобы при нажимании по шарику он исчезал,а потом за сценой появлялся(а то я очки могу за раз 5 штук набрать).и сделайте ,чтобы при определенном кол-ве очков выходила надпись Победа,ну или что-то в этом роде.

Администрация сайта,исправьте пожалуйста опечатку в письме с регистрации:
Уроки  Flash-Все о Flas.

Аватар пользователя mass

Ого)) Скажу по секрету, если захочешь эту программку оптимизировать, то сотрешь половину кода))) Я тебе укажу на определенные места, которые ты должен в будущем избегать.

1. Операторы if.   Смотри, у тебя в коде есть "пустые" проверки. Попробую объяснить.
Предположим есть число a=15, у тебя в коде получается следующее, if (a=15) {...}; if (a<15) {...};   if (a>15) {...}; и т.д) Получается, что при выполнении кода будет тратиться время на все 3-и проверки, а это нехорошо)) Используй конструкцию if() ... else if() ... Тогда, как выполниться одно из условий, AS пропустит остальные ненужные проверки.

2. Функции enmy11(12,13)  по своей сути дублируют друг друга, если подумать из них можно сделать одну динамическую функцию (назовем её enmy11111).  А теперь представь сколько кода ты удалишь если хорошо подумаешь?))  Для начала введи переменную var krug:String = "zelen_color"; Зеленый круг у тебя будет по умолчанию активный, далее в функциях слушателей кнопок меняй эту переменную krug. Потом введи  для функции enmy11111 обязательную переменную(скажем kk) в которая будет дублировать значения на кнопках (ну т.е. получиться, что kk = "zelen_color") . И уже в самой функции сравнивай две переменные. Одна это krug (какая кнопка у тебя нажата), другая kk -анимированный мувиклип)) Если они равны то плюс очко, если нет то минус) и т.д. 

Удачи) 

Аватар пользователя Паша
Цитата: Anti_Karhad

А смысл игры????

Выбираешь нужный цвет и ловишь нужный шарик...
 .
mass  спасибо за советы, будем стараться что-то оптимизировать....

Аватар пользователя Heilfuhrer

Вот если бы коментарии добавил более полезно было бы для всех)

Аватар пользователя hitab

Оптимизировать можно много, например при Клике выполнялась одна функция, а там уже кэйсом выбиралось, что тебе надо. Еще ИЗБЕГАЙ дублирования кода, создай новую функцию и при одинаковых участках кода ее вызывай.
function MouseClickHandler(e:MouseEvent):void
{
    switch (e.target as MovieClip)
    {
        case btn1:
        kras_color = true ;
        mess.text = "Ловите красных!!!";
        break;
        case btn2:
        oran_color = true ;
        mess.text = "Ловите оранжевых!!!";
        break;
        case btn3:
        zel_color = true ;
        mess.text = "Ловите зеленых!!!";
        break;

        default:
        kras_color = true ;
        mess.text = "Ловите красных!!!";
        break;
    }
}

Аватар пользователя сondor

чет непонятно оно работает )

Аватар пользователя Rell

Нифига себе первый опыт

acute

Аватар пользователя Паша
Цитата: Rell

Нифига себе первый опыт

У мя до этого был не большой опыт на С++. 

Цитата: сondor

чет непонятно оно работает )

Я её уже усовершенствовал )поставил ограничитель на количество нажимо и т.д.
А в общем там просто нужно ловить шарики.

Аватар пользователя Neirol

Ахахахха, сравнивать C++ и ActionScript 3.0, все равно что сравнить миллионера с бомжом (в плане денежных средств).
А приложение глючит, зачем такое выкладывать не оптимизировав его?
Вы все-таки не разработчик, например готики 4, которые спешат обрадовать своих фанатов, нам то это нафиг не нужно, уж поверьте =) 

Написал программу? Проверь на ошибки. Исправил ошибки? Проверь еще раз. Нет ошибок? Ты плохой программист!<br /><br />http://prograph.ru/ - видео уроки по программированию в разных средах, а также справочники, программы и новости.<br />

Аватар пользователя Паша
Цитата: Neirol

Ахахахха, сравнивать C++ и ActionScript 3.0

Я имел введу , что общие принципы для этих языков одинакови)))

Да, я не разработчик готики!!! Я только учусь, а как по вашему можно без критики и помощи в чем то разобраться? Поэтому выложил код который смог написать что бы что - то посоветовали...так как я вроде думал что этот сайт именно дял этого , что бы воспитать будущее поколение флешеров....А вы место того что бы на меня просто гнать из за не оптимизированого кода. Моглибы расказать и посоветовать где и что можно улучшить.

Аватар пользователя Валрера

Паша,
Не обращай внимания на нейрола. Он думает что умнее всех и думает что ему всё можно.
Neirol,
Я не думаю что твою первую работу так же критиковали.

Programmer Action Script 3.0

Аватар пользователя Fly
Цитата: Валрера

Паша, Не обращай внимания на нейрола. Он думает что умнее всех и думает что ему всё можно.

Предлагае остановитьсяпо поводу взаимных упрёков... следующие комменты буду удалять на эту тему...

1) Админ всегда прав
2) Если админ не прав, смотри пункт 1

Мы в контакте - http://vkontakte.ru/club9573247
Не отвечаю на вопросы в личку касаемо Flash, у нас для этого есть форум

Аватар пользователя Валрера

А вообще идея неплохая. Как для первого опыта - просто супер.
Вместо кружков можно сделать шарики которые бы при нажатии на них лопались.
Вместо курсора можно сделать пистолет, или лучше стрелу. А так ничё =)

Programmer Action Script 3.0

Аватар пользователя Morozoff

Добрый день.
Сижу разбираю пример ( исходника нет - пытаюсь воспроизвести сам - чего то не работает)
У меня такое чувство, что пример сделан на АС2, а пытаюсь его на АС3 возпроизвести и от этого все проблемы..
Тупо не могу заставить кнопки работать:)))
Если это AC3, то значит я намутил со свойствами кнопок
ps 3 день ( сутки ) знаком со Flash - если у кого будет возможность и желание помочь, буду признателен !

Аватар пользователя Паша

Неа))) Это точно  АС 3.
Что именно там не получаеться??

Аватар пользователя Валрера

Тупо не могу заставить кнопки работать:)))

Ты хоть их обзывал как нибудь создавая их?
Причина возможна в слушателе или в функцие.
Напиши в лс если тебя интерисует!

Programmer Action Script 3.0

Аватар пользователя CuCaDMuH

ну, косяк есть. При "Поражении" нужна кнопка рестарта (заветное Правая Кнопка - Воспроизвести тут не подействует). Единственный косяк, пожалуй.

Прячься, это админ...