Сохранение и чекпоинты - Scirra Construct - Конструкторы игр, системы разработки игр
Навигация по сайту
Сайт:

Дополнительно:

Файловый архив:

Каталог статей:

Форум:


Категории раздела
Game Maker [27]
Flash [3]
FPS Creator X9, X10 [1]
Scirra Construct [14]
Multimedia Fusion [0]
001 Game Maker, Map 001 [0]
3D RAD [16]
3D Game Studio [1]
Silent Walk FPS Creator [0]
Blender (Блендер) [1]
Game Editor [0]
Остальное [1]
Все остальное, что не попадает ни под одну категорию.

Мини-Опрос
Какой платформой Вы пользуетесь?
Всего ответов: 915

Партнеры сайта
....

Сохранение и чекпоинты

18:28
Всем привет, с вами Loko™ с очередным уроком по Construct Classic.
На этот раз мы склепаем систему Save/Load с помощью INI файлов, а также узнаем об одном способе создания чекпоинтов. Урок обещает быть долгим, поэтому заварите чаю, усядьтесь поудобнее, расслабьтесь и приступайте к прочтению.

Save/Load с помощью INI файлов
Давно уже не секрет, что стандартные средства сохранения/загрузки Construct Classic мягко говоря не идеальны. Поэтому мы пойдем другим путем, используя INI файлы.
INI файлы – это обычные текстовые файлы, в которых будут храниться нужные нам значения.
В чем суть данного метода:
Мы добавляем глобальную переменную, в которой цифры будут означать номера уровней. И при старте одного из уровней будем давать этой переменной нужное значение и записывать это значение в INI файл. Таким образом, у нас всегда будет внешний файл с хранящейся информацией, и нам остается только загружать его, чтобы восстановить прогресс прохождения.

Подготовка
Создадим меню с двумя кнопками – "Продолжить игру" и "Новая игра".

Создадим первую кнопку:
Insert an object – Text
Переименуйте только что созданный объект в Continue. Измените следующие поля в Properties:
Text – Продолжить игру
Size – 30
Bold – поставьте галочку

Создадим вторую кнопку:
Insert an object – Text
Переименуйте только что созданный объект в Newgame. Измените следующие поля в Properties:
Text – Новая игра
Size – 30
Bold – поставьте галочку

Расставьте аккуратненько созданные тексты на уровне. Например, так:



Создадим глобальную переменную:
В правом окошке снизу переходим во вкладку Project – щелкаем правой кнопкой мыши по папке Global variables – Add global variable – в поле Name пишем Level – OK

Обратим внимание на папку Layouts. Сейчас там красуется лишь один уровень с названием Layout 1. Выделите его и переименуйте на Menu.
Склонируйте уровень – правой кнопкой мыши на Menu – Clone layout
Переименуйте только что склонированный уровень в Level 1. Это будет первый уровень игры.

Создадим еще один уровень:
Правой кнопкой мыши на Level 1 – Clone layout
Переименуйте только что склонированный уровень в Level 2. Это, соответственно, второй уровень в игре.

Сделайте какие-нибудь изменения на уровнях. Сделайте переходы между уровнями (если вы не знаете, как делаются переходы, прочтите 7 часть статьи "Создание 2D платформера а-ля Ghost Quest")

Добавьте в каждый уровень поддержку клавиатуры и мыши:
Insert an object – Mouse & Keyboard

Обязательно добавьте в каждый уровень объект INI:
Insert an object - INI

Итак, подготовительная часть закончена, переходим в редактор событий уровня Menu (Event Sheet Editor).
Сперва нам нужно указать, с каким INI файлом мы будем работать.

Событие:
Insert event – System – Start of layout

Действие:
New action – INI – Set INI file – в поле Path пишем apppath+"Save.scrr" – Finish



В событии мы указали условие – при запуске уровня
В действии мы указали, с каким INI файлом будем работать (Save.srr)

Следующее событие будет для начала новой игры.

Событие:
Insert event – MouseKeyboard – On object clicked – Pick an object – Newgame – Finish

Действие:
New action – System – Next layout – Finish



Событие – игрок кликнул по тексту "Новая игра"
Действие – перейти на следующий уровень (предполагается, что следующий уровень – это уровень 1)

Теперь сделаем событие для щелчка по "Продолжить игру".

Событие:
Insert event – MouseKeyboard – On object clicked – Pick an object – Continue – Finish

Действие:
New action – System – Set value – в графе Variable выбираем Level, в поле Value пишем INI.ItemValue("Level", "Level") – Finish



Событие – игрок кликнул по тексту "Продолжить игру"
Действие – загружаем значение глобальной переменной из INI файла

Подсобытие 1:
Щелкаем правой кнопкой мыши по только что созданному событию – Insert sub-event – System – Compare global variable – Level, Equal to, Compare to = 1 – Finish

Действие для подсобытия 1:
New action – System – Go to layout – в поле Layout вставляем значение 2 – Finish



Подсобытие – если загруженное значение глобальной переменной равно 1
Действие – перейти на уровень 2 (т.к. уровень Menu считается первым, то уровень Level 1 – считается вторым)

Подсобытие 2:
Щелкаем правой кнопкой мыши по только что созданному событию – Insert sub-event – System – Compare global variable – Level, Equal to, Compare to = 2 – Finish

Действие для подсобытия 2:
New action – System – Go to layout – в поле Layout вставляем значение 3 – Finish



Подсобытие – если загруженное значение глобальной переменной равно 2
Действие – перейти на уровень 3

Если проверить, то по нажатию на кнопку "Новая игра" – загружается первый уровень, но по нажатию на кнопку "Продолжить игру" – ничего не происходит. Это потому, что мы еще не настроили сохранение прогресса в INI файл на уровнях.

Переходим в редактор событий уровня Level 1.

Событие:
Insert event – System – Start of layout

Действия:
1. New action – System – Set value – Level, Value = 1 – Finish
2. New action – INI – Set INI file – в поле Path пишем apppath+"Save.scrr" – Finish
3. New action – INI – Write value – в поле Group пишем "Level" (в кавычках), в поле Item пишем "Level" (в кавычках), в поле Value пишем global('Level') – Finish



Событие – при старте уровня
Действие 1 – установить значение глобальной переменной Level на 1
Действие 2 – указываем, с каким INI файлом мы работаем
Действие 3 – записываем значение глобальной переменной в INI файл

Переходим в редактор событий уровня Level 2.

Событие:
Insert event – System – Start of layout

Действия:
1. New action – System – Set value – Level, Value = 2 – Finish
2. New action – INI – Set INI file – в поле Path пишем apppath+"Save.scrr" – Finish
3. New action – INI – Write value – в поле Group пишем "Level" (в кавычках), в поле Item пишем "Level" (в кавычках), в поле Value пишем global('Level') – Finish



Событие – при старте уровня
Действие 1 – установить значение глобальной переменной Level на 2
Действие 2 – указываем, с каким INI файлом мы работаем
Действие 3 – записываем значение глобальной переменной в INI файл

Все готово. Теперь, на уровнях записываются значения глобальных переменных в INI файл. И, если мы включим первый или второй уровень, затем выключим игру, запустим уровень Menu и нажмем на "Продолжить игру" – запуститься тот уровень, на котором мы были в последний раз.

Чекпоинты
Для реализации чекпоинтов мы будем использовать систему Quicksave/Quickload.
Система очень проста – при соприкосновении героя и чекпоинта – игра делает быстрое сохранение. Когда герой погибает – игра делает быструю загрузку.

Переходим на нужный уровень. Создадим новый спрайт:
Insert an object – Sprite – заливаем все зеленым цветом (в игре этот спрайт будет невидимым, так что можете не стараться, и не придавать залитому объекту индивидуальности) – сохраняем
Переименуйте только что созданный спрайт в Checkpoint.

Сделаем его невидимым:
Выделяем Checkpoint – Properties – поставьте галочку напротив Invisible on start

Переходим в редактор событий этого уровня (Event Sheet Editor)
Сперва сделаем быстрое сохранение игры при запуске уровня.

Событие:
Insert event – System – Start of layout

Действие:
New action – System – Quicksave/Quickload – из списка выбираем Quicksave – Finish



Здесь событие – при запуске уровня
Действие – сделать быстрое сохранение игры.

Сделаем какое-нибудь событие, при котором герой считается мертвым, и игру можно загружать по новой. Например, если герой вышел за пределы уровня (например, упал в пропасть).

Событие:
Insert event – bazis (это герой) – Object is outside layout?

Действие:
New action – System – Quicksave/Quickload – из списка выбираем Quickload – Finish



Здесь событие – если герой покинул пределы уровня
Действие – сделать быструю загрузку с места последнего быстрого сохранения.

Сделаем горячую клавишу для быстрой загрузки:

Событие:
Insert event – MouseKeyboard – On key pressed – R (это горячая клавиша быстрой загрузки) – Finish

Действие:
New action – System – Quicksave/Quickload – из списка выбираем Quickload – Finish



Событие – нажата клавиша R
Действие – сделать быструю загрузку с места последнего быстрого сохранения.

Разберемся, непосредственно, с чекпоинтом.

Событие:
Insert event – bazis – On collision with another object – Pick an object – Checkpoint – Finish

Действия:
1. New action – Checkpoint – Destroy
2. New action – System – Quicksave/Quickload – из списка выбираем Quicksave – Finish



Событие – герой коснулся чекпоинта
Действие 1 – уничтожить чекпоинт (чтобы игрок не мог сохраняться несколько раз подряд на одном и том же месте)
Действие 2 – сделать быстрое сохранение

Все готово, проверяем.
Небольшой совет по чекпоинтам – размещайте их в спокойных местах, где рядом нет противников. Чтобы не было такой картины: быстрая загрузка - хлоп, снаряд в героя.
Если вы хотите, чтобы при быстрой загрузке восстанавливалось количество здоровья, или чего еще – используйте событие System – On load и действиями к нему восполняйте драгоценное HP.

Я надеюсь, что мой урок еще на шаг приблизил вас к реализации вашей игры.
Для вас старался Loko™, успехов!

Категория: Scirra Construct | Просмотров: 5309 | Добавил: Loko™ (18.11.2012) | Рейтинг: 5.0/5
Теги: Construct Classic, как сделать сохранение в скирре, Сохранение и чекпоинты, чекпоинт в construct
HTML ссылка на материал:
BB ссылка на материал:
Похожие материалы :
Возможно вам будет интересно:
Создание заставки (Intro) (0)
Создание рикошета пуль от стены (4)
Циклы (0)
Функции D3D в Game Maker (2)
Borland Assembler (BASM) уроки для начинающих (урок 7 часть 1) (0)
Исключения в C++ (0)
3d Rad - Про конструктор (0)
Создаем искусственный интеллект (1)
Создаем танчики (0)
Уроки по BGE для начинающих. (0)
Пингуем (Ping) под Delphi (1)
Как рисовать спрайты в DXDraw DelphiX (0)
Глобальные объекты в Дельфи. Их свойства и методы. (0)
Создание Платформенной Игры Copyright 2001 by Mark Overmars (0)
Урок про скелетную анимацию (0)
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Мы в социальных сетях

Поиск
Поиск по всему сайту:
Поиск по разделу:

Панель пользователя
Здравствуйте, Гость


Ник:
Пароль:
Запомнить :

Ваш IP: 54.204.108.121

Случайные конструкторы

Случайные движки

Случайные статьи

Статистика
Онлайн всего: 5
Гостей: 5
Пользователей: 0

На сайте были:
FireOfSteel

При полном или частичном копировании материалов сайта ссылка на Make-Games.ru обязательна. Make-Games.ru © 2008 - 2016 Хостинг от uWeb
Топ Разработка игр Рейтинг@Mail.ru