PDA

Просмотр полной версии : Не могу уменьшить количество жизней в функции


kuflash
24.07.2009, 14:27
Всем здрасте! Делаю тут игруню одну и мне надо, если человек ошибается удалить один клип с именем "life"+ кол-во жизней. Вот функция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
Уау. Работает. ^_^ Просто офигительно. Наиогромнейшее СПАСИБО!!!!!!