Главная » Статьи » Уроки » Для опытных |
Создание системы уровней с ini фаилами.
Тут я решил рассказать как сделать "открытие уровней", то есть пока не прошел первую миссию взяться за вторую нельзя + перепрохродение миссий. Делается это с помощью ini файлов в которые вписывается пройдена ли миссия или нет (true - да или false - нет). Конечно опытный пользователь сможет просто на просто открыть файл блокнотом и изменить false на true, но эту проблему можно решить есть изменить расширение .ini на .save (люди подумают что это сейв и туда лучше не лазить) или какое-либо другое, хоть .vam_kazetsa_chto_eto_ne_ini_fail_no_eto_ne_tak расширение не имеет значения game maker и так поймет что это ini файл. Алгоритм чтения такой: 1. Открываем файл. 2. Читаем значение из ключа lvl2 и записываем его в переменную. 3. Закрываем файл. 4. Если переменная равна 0 то уровень закрыт и невидим иначе открыт и видим. Теперь нужно создать несколько спрайтов которые будут обозначать уровни (кликнешь и уровень запускается) и спрайт кнопки для перехода на следующий уровень (конечно в настоящей игре следующий уровень открывается когда например соберешь 100 очков и т.д., но тут для простоты мы сделали простым кликом). Теперь создадим одноимённые объекты (но не совсем одноимённые смените приставку s_ на o_) и кнопки для перехода на следующий уровень. Теперь в каждый объект пишем такой код (в step): ini_open("lvl.ini")//открываем файл для чтения lvl1=ini_read_real("lvl","lvl1",0)//записываем в переменную lvl1 строку из файла. if lvl1=0//если уровень закрыт {image_alpha=0//то иконка не видна } else { image_alpha=1 } ini_close()//закрываем файл Не забудьте во второй строке заменить lvl1=ini_read_real("lvl","lvl1",0) на ключ уровня (для каждого объекта свой ключ). А также в событие нажатия ЛКМ: room_goto(room1) где выделенное нужно заменить на тот уровень куда ведет эта кнопка. С этими объектами закончили, теперь перейдем к кнопкам завершения уровня. Опять каждой кнопке в событие нажатия ЛКМ: ini_open("lvl.ini")//открываем файл ini_write_real("lvl","lvl2",1)//записываем значение ini_close()//закрываем файл room_goto("room0")//переходим в меню Выделенное опять меняем на ключ к следующему уровню. Теперь размещаем объекты уровня в комнате и тестим. Скачать исходник с нашего сервера можно тут.
| |
Просмотров: 2380
| Теги: |
Всего комментариев: 0 | |