Как сделать unlock уровней?
|
|
NewLang | Дата: Суббота, 21 Января 2012, 19:27 | Сообщение # 1 |
#include MegaGame.h
Сейчас нет на сайте
| Помогите пожалуйста! Как сделать разблокировку уровней, чтобы при прохождении 1 уровня разблокировался 2 уровень.
I'm Lang. NewLang Изучаю C++
|
|
| |
LunarPixel | Дата: Суббота, 21 Января 2012, 19:36 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| NewLang, я, конечно, понимаю, что у себя в голове тебе понятно, о чем ты говоришь, но может всё таки напишешь подробнее?!
Нужна классическая система, типа, изначально показана табличка со всеми уровнями, но открыт только первый, при прохождении первого открывается второй и т.д.?!
Если да, то заведи массив с количеством уровней, все элементы массива делай равными 0, кроме первого, который равен 1, при прохождении уровней изменяй значения в массиве с 0 на 1. Ну а в таблице в которой все уровни отображаются, просто проверяй весь массив в цикле и ставь необходимые условия, типа: "если = 0, тогда нельзя перейти на уровень, иначе можно".
|
|
| |
hero564 | Дата: Суббота, 21 Января 2012, 19:38 | Сообщение # 3 |
Made in Ukraine
Сейчас нет на сайте
| LunarPixel, мож кинуть ссыль на статью толковую по масивах? а то чет это для меня совсем непонятное, но походу очень полезное
|
|
| |
LunarPixel | Дата: Суббота, 21 Января 2012, 19:40 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| hero564, Клик
|
|
| |
hero564 | Дата: Суббота, 21 Января 2012, 20:03 | Сообщение # 5 |
Made in Ukraine
Сейчас нет на сайте
| LunarPixel, спс большое))
|
|
| |
stalker5889 | Дата: Воскресенье, 22 Января 2012, 09:23 | Сообщение # 6 |
Свободный игродел
Сейчас нет на сайте
| LunarPixel, я писал по теме разблокировки уровней урок. Кому интересно тут. Массив при выходе из игры будет обнуляться (новая игра) поэтому я сделал в ини.
|
|
| |
LunarPixel | Дата: Воскресенье, 22 Января 2012, 12:59 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| stalker5889, никто не мешает массив записать в ини. Я в первом посте указал на то, что автор ничего толком не описал по проблеме. Ну а твой способ, должен заметить, не самый лучший.
|
|
| |
Eshford | Дата: Воскресенье, 22 Января 2012, 13:11 | Сообщение # 8 |
Богиня Гамака ♥
Сейчас нет на сайте
| LunarPixel, У меня в InSearchOfLight получилось все прекрасно без ини!
|
|
| |
LunarPixel | Дата: Воскресенье, 22 Января 2012, 13:14 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| Alexis-63, и?! Ну молодец
|
|
| |
Eshford | Дата: Воскресенье, 22 Января 2012, 13:21 | Сообщение # 10 |
Богиня Гамака ♥
Сейчас нет на сайте
| LunarPixel, Просто хочу сказать, что не надо усложнять этими вашими массивами, да ини!
|
|
| |
Xageu | Дата: Воскресенье, 22 Января 2012, 13:21 | Сообщение # 11 |
Хадей - Друг Детей
Сейчас нет на сайте
| LunarPixel, я делал не только 0 и 1, а -1, 0, 1. Поясню, почему. -1 это недоступный уровень 0 самый последний на данный момент доступный уровень 1 уже пройденный уровень Возможно, как и всегда, есть варианты и получше, но это помогло мне прикрутить без проблем еще пару вещей, касательно этих самых уровней.
Сам исполняемый объект лежит в какой-нибудь комнате, которая имеет статус Постоянная.
|
|
| |
LunarPixel | Дата: Воскресенье, 22 Января 2012, 13:26 | Сообщение # 12 |
старожил
Сейчас нет на сайте
| Alexis-63, как ты без массива делал? каким методом? Про ини я написал в ответ на пост stalker5889, конечно можно и без ини, тут уже от ситуации зависит.
Загё, можно и так, тут так же от конкретной ситуации зависит, ну и от удобства для самого разработчика, я лишь идею подал.
|
|
| |
Eshford | Дата: Воскресенье, 22 Января 2012, 13:32 | Сообщение # 13 |
Богиня Гамака ♥
Сейчас нет на сайте
| Quote (LunarPixel) как ты без массива делал? каким методом? 9000 проверок if`ами 9000 переменных
|
|
| |
|
Eshford | Дата: Воскресенье, 22 Января 2012, 13:43 | Сообщение # 15 |
Богиня Гамака ♥
Сейчас нет на сайте
| LunarPixel, Печально, но нет! Вот код постоянного объекта контроля уровней!
Code global.level1=0
global.level2=0 global.unlevel2=0
global.level3=0 global.unlevel3=0
global.level4=0 global.unlevel4=0
global.level5=0 global.unlevel5=0
global.level6=0 global.unlevel6=0
global.level7=0 global.unlevel7=0
global.level8=0 global.unlevel8=0
global.level9=0 global.unlevel9=0
global.level10=0 global.unlevel10=0
global.level11=0 global.unlevel11=0
global.level12=0 global.unlevel12=0
global.level13=0 global.unlevel13=0
global.level14=0 global.unlevel14=0
global.level15=0 global.unlevel15=0
global.level16=0 global.unlevel16=0
global.level17=0 global.unlevel17=0
global.level18=0 global.unlevel18=0
global.level19=0 global.unlevel19=0
global.level20=0 global.unlevel20=0
|
|
| |
LunarPixel | Дата: Воскресенье, 22 Января 2012, 13:48 | Сообщение # 16 |
старожил
Сейчас нет на сайте
| Alexis-63, ну в таком случае это тебе Quote (Alexis-63) не надо усложнять
|
|
| |
Eshford | Дата: Воскресенье, 22 Января 2012, 14:02 | Сообщение # 17 |
Богиня Гамака ♥
Сейчас нет на сайте
| Quote (LunarPixel) не надо усложнять Уж не знаю почему, но мне было так гораздо легче!
|
|
| |
noTformaT | Дата: Воскресенье, 22 Января 2012, 14:27 | Сообщение # 18 |
Ukrainian independent game developer
Сейчас нет на сайте
| Самый простой способ, это хранить количество "открытых" уровней. Например что-то наподобие: Code _global.open_levels = 1;
В сцене меню выбора уровня, проверять каждый "вход в уровень", таким вот кодом: Code for(i = 1; i < num_levels; i++) { if(i < _global.open_levels){ _levelRoom[i].setOpen(); }else{ _levelRoom[i].setClose(); } }
где _levelRoom[] - массив кнопок/объектов для входа в определенный уровень. num_levels - количество таких кнопок. setOpen/setClose - методы объекта, которые "блочат/анлочат" вход на уровень.
Ну, а в самой сцене уровня, написать следующий код, при достяжении окончания уровня: Quote if(sceneNum == _global.open_levels){ _global.open_levels++; }
В итоге, если у нас _global.open_levels == 1, то мы можем зайти только в первый уровень, как только мы его закончили, проверяется условие, равен ли _global.open_levels текущему уровню, если да, то _global.open_levels стает равным двум. Если мы еще раз зайдем в первый уровень, _global.open_levels не равен уже 1, поэтому новый уровень разблочится когда мы пройдем второй уровень.
|
|
| |
Brain_Breaker | Дата: Воскресенье, 22 Января 2012, 14:27 | Сообщение # 19 |
Слишком субъективный критик
Сейчас нет на сайте
| Alexis-63, это называется говнокод метод использования массивов и ини в разы легче и не нужно прикрывать личными удобствами неумение логически мыслить
|
|
| |
Eshford | Дата: Воскресенье, 22 Января 2012, 14:43 | Сообщение # 20 |
Богиня Гамака ♥
Сейчас нет на сайте
| Quote (Brain_Breaker) это называется говнокод метод использования массивов и ини в разы легче и не нужно прикрывать личными удобствами неумение логически мыслить Для меня кулл, если все работает как надо и не тормозит, у меня это получилось. Как только достигну вашего уровня, может сделаю лучше!
|
|
| |