Сохранение и чекпоинты - 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]
Все остальное, что не попадает ни под одну категорию.

Мини-Опрос
Вы следите за обновлениями конструкторо игр, движков?
Всего ответов: 378

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

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

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 | Просмотров: 9126 | Добавил: Loko™ (18.11.2012) | Рейтинг: 5.0/5
Теги: Construct Classic, как сделать сохранение в скирре, Сохранение и чекпоинты, чекпоинт в construct
HTML ссылка на материал:
BB ссылка на материал:
Похожие материалы :
Возможно вам будет интересно:
статьи по Yogurt3D (0)
Работа с Сетью в Blitz3D: TCP (0)
Создание многопользовательской(online) игры на Game Maker. (часть 2) (0)
Game Maker. Начало (1)
Начинаем изучать PHP (4)
Создание 3D игр на Game Maker (3)
Создание RTS игры (2)
Глобальные объекты в Дельфи. Их свойства и методы. (0)
Создание многопользовательской(online) игры на Game Maker. (часть 1) (0)
Синтаксис GML в сравнении с Pascal (1)
Задротство - основа MMO игр (10)
Статья к теме "Психоделика" (9)
Многопоточность (0)
Создание и редактирование объектов в Blitz3D (0)
Пишем игровой сюжет (10)
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Поиск по всему сайту:
Поиск по разделу:

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


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

Ваш IP: 18.117.229.180

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

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

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

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

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

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