Суббота, 27 Апреля 2024, 02:36

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Как сделать unlock уровней?
Как сделать unlock уровней?
NewLangДата: Суббота, 21 Января 2012, 19:27 | Сообщение # 1
#include MegaGame.h
Сейчас нет на сайте
Помогите пожалуйста! Как сделать разблокировку уровней, чтобы при прохождении 1 уровня разблокировался 2 уровень.

I'm Lang. NewLang
Изучаю C++
LunarPixelДата: Суббота, 21 Января 2012, 19:36 | Сообщение # 2
старожил
Сейчас нет на сайте
NewLang, я, конечно, понимаю, что у себя в голове тебе понятно, о чем ты говоришь, но может всё таки напишешь подробнее?! smile

Нужна классическая система, типа, изначально показана табличка со всеми уровнями, но открыт только первый, при прохождении первого открывается второй и т.д.?!

Если да, то заведи массив с количеством уровней, все элементы массива делай равными 0, кроме первого, который равен 1, при прохождении уровней изменяй значения в массиве с 0 на 1. Ну а в таблице в которой все уровни отображаются, просто проверяй весь массив в цикле и ставь необходимые условия, типа: "если = 0, тогда нельзя перейти на уровень, иначе можно". smile


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, никто не мешает массив записать в ини. Я в первом посте указал на то, что автор ничего толком не описал по проблеме. Ну а твой способ, должен заметить, не самый лучший. smile

EshfordДата: Воскресенье, 22 Января 2012, 13:11 | Сообщение # 8
Богиня Гамака ♥
Сейчас нет на сайте
LunarPixel, У меня в InSearchOfLight получилось все прекрасно без ини! wink
LunarPixelДата: Воскресенье, 22 Января 2012, 13:14 | Сообщение # 9
старожил
Сейчас нет на сайте
Alexis-63, и?! Ну молодец biggrin

EshfordДата: Воскресенье, 22 Января 2012, 13:21 | Сообщение # 10
Богиня Гамака ♥
Сейчас нет на сайте
LunarPixel, Просто хочу сказать, что не надо усложнять этими вашими массивами, да ини! smile
XageuДата: Воскресенье, 22 Января 2012, 13:21 | Сообщение # 11
Хадей - Друг Детей
Сейчас нет на сайте
LunarPixel, я делал не только 0 и 1, а -1, 0, 1. Поясню, почему.
-1 это недоступный уровень
0 самый последний на данный момент доступный уровень
1 уже пройденный уровень
Возможно, как и всегда, есть варианты и получше, но это помогло мне прикрутить без проблем еще пару вещей, касательно этих самых уровней.

Сам исполняемый объект лежит в какой-нибудь комнате, которая имеет статус Постоянная.


LunarPixelДата: Воскресенье, 22 Января 2012, 13:26 | Сообщение # 12
старожил
Сейчас нет на сайте
Alexis-63, как ты без массива делал? каким методом?
Про ини я написал в ответ на пост stalker5889, конечно можно и без ини, тут уже от ситуации зависит.

Загё, можно и так, тут так же от конкретной ситуации зависит, ну и от удобства для самого разработчика, я лишь идею подал. smile


EshfordДата: Воскресенье, 22 Января 2012, 13:32 | Сообщение # 13
Богиня Гамака ♥
Сейчас нет на сайте
Quote (LunarPixel)
как ты без массива делал? каким методом?

9000 проверок if`ами
9000 переменных
LunarPixelДата: Воскресенье, 22 Января 2012, 13:36 | Сообщение # 14
старожил
Сейчас нет на сайте
Alexis-63, надеюсь это шутка, в противном случае полнейшее извращение.. biggrin практически метод stalker5889
думаю проще чем массивом (или его альтернативой) не сделать smile


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)
не надо усложнять
happy


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, это называется говнокод biggrin метод использования массивов и ини в разы легче и не нужно прикрывать личными удобствами неумение логически мыслить biggrin
EshfordДата: Воскресенье, 22 Января 2012, 14:43 | Сообщение # 20
Богиня Гамака ♥
Сейчас нет на сайте
Quote (Brain_Breaker)
это называется говнокод метод использования массивов и ини в разы легче и не нужно прикрывать личными удобствами неумение логически мыслить

Для меня кулл, если все работает как надо и не тормозит, у меня это получилось. Как только достигну вашего уровня, может сделаю лучше!
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Как сделать unlock уровней?
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг