Прежде чем перейти к вопросу, опишу свою систему переключения между уровнями. Есть две переменные: level и level_max В окне выбора уровня программа провеняет какой сейчас level_max и дает доступ ко всем уровням от первого и до level_max. Все уровни находяться на одном кадре. При Входе на кадр программа проверяет какой сейчас level выбран и расставляет елементы. по прохождению уровня появляется кнопка Next со следующим кодом внутри:
Code
switch (level) {case 10: if (level_max == 10){level_max = 11;};level = 11;load_lvl(); break; case 9: if (level_max == 9){level_max = 10;};level = 10;load_lvl(); break; case 8: if (level_max == 8){level_max = 9;};level = 9;load_lvl(); break; case 7: if (level_max == 7){level_max = 8;};level = 8;load_lvl(); break; case 6: if (level_max == 6){level_max = 7;};level = 7;load_lvl(); break; case 5:; if (level_max == 5){level_max = 6;};level = 6;load_lvl(); break; case 4: if (level_max == 4){level_max = 5;};level = 5;load_lvl(); break; case 3: if (level_max == 3){level_max = 4;};level = 4;load_lvl(); break; case 2: if (level_max == 2){level_max = 3;};level = 3;load_lvl(); break; case 1: if (level_max == 1){level_max = 2;};level = 2;load_lvl(); break; }
load_lvl(); - тот процесс, который в зависимомти от level все расставляет. Если проходить уровни один за другим, то все в порядке. Нажал next перешел дальше, level_max тоже увеличилось на единицу. НО, если, например дойти до четвертого уровня, затем вернуться в меню и перейти на первый, то при нажатии на next игра перескакивает на третий, да и вобще вся система начинает глючить. Например, по прохождении уровня 5 - получаешь доступ к седьмому. И собственно вопрос, кто может сказать с чем связан этот глюк и как от него избавится? Буду ооочень благодарен за ответ.
Сообщение отредактировал ggman - Среда, 31 Августа 2011, 23:27
switch (level) {case 10: if (level_max == 10){level_max = 11;};level = 11;load_lvl(); break; case 9: if (level_max == 9){level_max = 10;};level = 10;load_lvl(); break; case 8: if (level_max == 8){level_max = 9;};level = 9;load_lvl(); break; case 7: if (level_max == 7){level_max = 8;};level = 8;load_lvl(); break; case 6: if (level_max == 6){level_max = 7;};level = 7;load_lvl(); break; case 5:; if (level_max == 5){level_max = 6;};level = 6;load_lvl(); break; case 4: if (level_max == 4){level_max = 5;};level = 5;load_lvl(); break; case 3: if (level_max == 3){level_max = 4;};level = 4;load_lvl(); break; case 2: if (level_max == 2){level_max = 3;};level = 3;load_lvl(); break; case 1: if (level_max == 1){level_max = 2;};level = 2;load_lvl(); break; }
I love this spaghetti code!!!
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Среда, 31 Августа 2011, 23:28
Недавно изменил систему на другую. Создал массив из 30 елимнтов. При нажатии next пишу level = level + 1; Доступ из меню к уровню открываеться при загрузке смого уровня. level_max[n] = true; Но проблем никуда не пропала. Помогите пожалуйста.
Добавлено (31.08.2011, 23:29) --------------------------------------------- froex Наверное я слишком мало общаюсь с программистами, так-ка юмора не понял.
Пожалуйста, убери спаггети! Вроде то же самое. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Сообщение отредактировал froex - Среда, 31 Августа 2011, 23:36
ggman, я вообще не понял всю структуру переключения между уровнями, вот например возмем вот это: switch (level) { case 10: if (level_max == 10){level_max = 11;};level = 11;load_lvl(); break; case 9: if (level_max == 9){level_max = 10;};level = 10;load_lvl(); break; .... и т.д.
Да тут чисто логически понятно что все эти спагети можно заменить вот на этот блок кода:
Теперь давай проверим, правильно ли все заменено. Начнем с level = 10; в твоих спагети при case 10: значение переменной level_max равно 11, значение переменной level тоже равно 11. в том коде что привел я - все тоже самое
Если я что то не так понял, то скажи что не так. @noTformaT
в твоих спагети при case 10: значение переменной level_max равно 11, значение переменной level тоже равно 11. Ну... В оригинале уровней 30 Я просто весь код ставить не хотел))
Захожу на первый уровень, прохожу его, второй, третий, дохожу до четвертого, возвращаюсь в меню. Снова захожу на превый, прохожу его и после нажатия next меня переносит на четвертый. Кто знает, что за глюки???
Сообщение отредактировал ggman - Четверг, 01 Сентября 2011, 00:28
Захожу на первый уровень, прохожу его, второй, третий, дохожу до четвертого, возвращаюсь в меню. Снова захожу на превый, прохожу его и после нажатия next меня переносит на четвертый.
У тебя номер текущего уровня обновляется только в конце, что ли? По всему видно, что при выходе в меню и повторном заходе на первый уровень у тебя level остаётся таким, каким был до этого. Меню-то у тебя как работает - с обращением к level или без? Bread Games - пилим ураганный экшен!