Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Не могу уменьшить количество жизней в функции (http://www.flasher.ru/forum/showthread.php?t=127840)

kuflash 24.07.2009 14:27

Не могу уменьшить количество жизней в функции
 
Всем здрасте! Делаю тут игруню одну и мне надо, если человек ошибается удалить один клип с именем "life"+ кол-во жизней. Вот функция
Код AS1/AS2:

function perebor_slova(otvet, alfavit:String) {
        for (i=0; i<otvet.length; i++) {
                if (otvet.charAt(i) == alfavit) {
                        _root["box"+i]["bukva_in_box"+i].text = alfavit;
                } else {
                        _root["life"+(lives-1)].removeMovieClip();
                }
        }
        trace(lives);
        return otvet, alfavit;
}

Если я в в блоке else добавлю lives--; то он мне удалит все клипы "life"+кол-во жизней кроме последнего (life4). Как быть? Может поможете? Заранее благодарен за дельные советы!

iflamberg 24.07.2009 14:32

Код:

function perebor_slova(otvet, alfavit:String) {
          var flag:Boolean = false;
        for (i=0; i<otvet.length; i++) {
                if (otvet.charAt(i) == alfavit) {
                        _root["box"+i]["bukva_in_box"+i].text = alfavit;
                } else {
                              flag=true; break;
                }
        }
          if (flag) {
                      _root["life"+(lives-1)].removeMovieClip();
                      lives--;
          }
        trace(lives);
        return otvet, alfavit;
}


kuflash 24.07.2009 14:35

Ну у меня чел нажимает на букву и мы бежим по слову и проверяем есть ли такая буква в слове. А с вашим примером у меня даже если есть такая буква в слове он уменьшает жизни

iflamberg 24.07.2009 14:40

это вы код протестировали и он выдал такой результат?
я может чего-то не понимаю в вашей задаче, но если
в else входа не будет, то flag остается =false, а это значит, что жизни не будут сняты.

kuflash 24.07.2009 14:42

Да. Протестировал. И если если даже есть буква в слове, то он все равно удаляет жизнь

iflamberg 24.07.2009 14:51

а, вам обратная логика нужна.
Код:

var base:String = "поле чудес";
var lives:Number=5;


trace (perebor_slova(base,"п"));
trace (perebor_slova(base,"f"));


function perebor_slova(otvet:String, alfavit:String) {
    var flag:Boolean = false;
        for (i=0; i<otvet.length; i++) {
                if (otvet.charAt(i) == alfavit) {
                        _root["box"+i]["bukva_in_box"+i].text = alfavit;
                        flag=true;
                }
        }
    if (!flag) {
            _root["life"+(lives-1)].removeMovieClip();
        lives--;
    }
        trace(lives);
        return otvet, alfavit;
}


kuflash 24.07.2009 14:53

Уау. Работает. ^_^ Просто офигительно. Наиогромнейшее СПАСИБО!!!!!!


Часовой пояс GMT +4, время: 14:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.