Menu

Создание магазина для шутера

Всем привет!

Очень много людей меня мучали этим вопросом «Как сделать магазин для шутера?». Что-ж, пришло время объяснить :)

Создание магазина на Clickteam Fusion 2.5

Проект состоит из двух Frame’ов. Первый — это собственно сам магазин, где вы покупаете оружие. Во втором Frame’е — сама игра. Здесь находятся персонаж и инвентарь, когда вы покупаете что-либо в магазине оно появляется в инвентаре игрока. Далее вы можете дать оружие персонажу из инвентаря.

Объект Ini Ini используется что бы передавать между Frame’ми информацию о том какое оружие было куплено. А так же сохраняет купленное оружие в инвентаре после закрытие игры, и текущее количество денег игрока.

 

Скачать исходный файл

 

Первый Frame — cоздание магазина

Первым делом нам нужно создать сами спрайты нашего оружия:

Пистолет:

Пистолет

Дробовик:

Дробовик

Автомат M4A1:

Автомат M4A1

Создаем новый Active Active и добавляем туда своё оружие в виде отдельных кадров. А так-же добавляем по сторонам по одному невидимому кадру.

оружие в виде Frame'ов

Теперь нужно сделать два спрайта, которые будут отвечать за переключение оружия.

переключение оружия

Объект кнопки «Buy» (Купить) состоит из двух анимаций: когда оружие доступно для покупки и когда вы его уже купили.

спрайт кнопки Buy

Что бы добавить новую анимацию, нужно нажать ПКМ в левом нижнем окошке с анимациями и нажать на New.

кнопка купили оружие

Название можно и не менять. Эта анимация нужна для кнопки, которая будет показывать, что вы купили оружие.

Далее нужно сделать надпись «SOLD» (продано) в отдельном объекте Active

Продано

Выбор оружия

Теперь добавляем объект Ini Ini на сцену магазина.

В первом событии при запуске игры, устанавливаем кадр анимации оружия на 1, то-есть это пистолет.

Сделаем такой ивент

И создаем ini-файл. Appdir$ + «Data» означает, что файл .ini создастся там же, где лежит исходный .exe файл игры под именем Data, которую он сам и создаёт.

Теперь само переключение:

Переключение

Переключение кадров

Перейти на другой кадр

Когда вы нажимаете кнопку влево анимация с оружие переходит на предыдущий кадр, т.е. текущий кадр — 1. Когда нажимаете кнопку вправо к текущему кадру прибавляется единица, что бы перейти к следующему кадру.

Чтобы не перелистывать из стороны в сторону. Создаем еще события перехода от последнего кадра к первому и наоборот:

С последнего кадра на первый

К сожалению во Fusion нет параметра «последний кадр», по этому приходится задавать конкретное число

 

Это в другую сторону

Далее передаем в счетчик Counter цены за оружие в зависимости от кадра:

shooter-shop-30

Покупка

Для начала нужно дать деньги игроку. Не будем жадничать, дадим игроку сразу 12000 баксов.

shooter-shop-31

Количество денег храниться в переменной Money объекта Ini Ini.

Это условие:

shooter-shop-32

нужно что бы игрок не получал 12000 при каждом запуске игры. Эти 12000 — лишь стартовый баланс игрока.

Что бы избежать ситуации когда игрок открывает игру с нулевым балансом и тут же получает 12000, можно, например, создать правило, что у игрока не может быть меньше одного бакса.

Небольшой нюанс

У объекта Ini нет событие для сравнения значений его переменных. Что бы создать такое событие нужно использовать Compare two general values от объекта Special:

compare two general value

shooter-shop-34

За тем, всегда отображаем деньги игрока в еще одном счетчикеCounter

shooter-shop-33

И теперь создаем событие покупки по нажатию на кнопку Buy:

shooter-shop-35

  • Текущий кадр магазина говорит о том какое оружие покупает игрок
  • далее проверяем есть ли у игрока достаточное количество средств
  • и проверяем что это оружие еще не куплено

На каждое оружие заведена отдельная переменная в объекте Ini, в данном случае мы создаем событие для покупки пистолета, ему соответствует переменная Pistol. Если эта переменная равна 0, то значит оружие не куплено, если она равна 1, значит игрок купил данное оружие.

Если условия выполняются:

  • присваиваем переменной Pistol единицу
  • и отнимаем у игрока сумму денег за покупку

Еще один нюанс

У объекта Ini нет действия «вычесть из»,  поэтому нужно использовать формулу:

переменная Money = текущее значение переменной Money — 1500

 

И такие же события создаем для покупки дробовика и автомата:

shooter-shop-36

Надпись Sold

Когда товар куплен, появляется надпись «SOLD», а кнопка «Buy» меняет анимацию:

shooter-shop-37

Если же нет:

анимации Спрайта с оружием

Когда игрок закрывает магазин он попадает на второй Frame с персонажем и инвентарем:

shooter-shop-38

Второй Frame — создание оружия у игрока

Для начала нам нужно заготовить спрайты.
Естественно, это будет игрок с нашими оружиями:

shooter-shop-23

Далее создаём для него новые анимации с нарисованными оружиями:

shooter-shop-24

Теперь создаём подобие инвентаря, из которого будем доставать нашу огнестрелку.
Нам будет достаточно тех кадров, которые мы делали для магазина при переключении оружия.
У вас должно получиться что-то вроде такого:

shooter-shop-25

конечно-же добавляем объект Ini Ini на нашу сцену. И привязываем его к ранее созданному файлу Data.ini

shooter-shop-39

Создание инвентаря и его функционала

Теперь нам нужно сделать так, что если у нас какого-то оружия нет, то оно не показывается в нашем инвентаре. И наоборот — отображалось в инвентаре если мы его купили:
shooter-shop-40

Выдача оружия игроку

Если у нас есть данное оружие в инвентаре, то при клике на это оружие, оно должно появляться в руках у персонажа:

shooter-shop-41

Анимация персонажа меняется в соответствии с выбранным оружием.

Теперь можно немного пострелять :)

8RqjpnQYwaI На этом всё. Всем удачи, всем пока ;-)

 

Скачать исходный файл

 

Всем привет! Очень много людей меня мучали этим вопросом "Как сделать магазин для шутера?". Что-ж, пришло время объяснить :) Проект состоит из двух Frame'ов. Первый - это собственно сам магазин, где вы покупаете оружие. Во втором Frame'е - сама игра. Здесь находятся персонаж и инвентарь, когда вы покупаете что-либо в магазине оно появляется в инвентаре игрока. Далее вы можете дать оружие персонажу из инвентаря. Объект Ini используется что бы передавать между Frame'ми информацию о том какое оружие было куплено. А так же сохраняет купленное оружие в инвентаре после закрытие игры, и текущее количество денег игрока.   Скачать исходный файл  …

10

Рейтинг: 5 ( 1 голосов)

    Рейтинг: 4,56 ( голосов - 9 )
Загрузка...
Комментариев: 3
  1. Devil_cat228:

    Статья полезная но подобную фигню можно сделать и с объектом «Counter»

  2. Андрей Кашников:

    Моя страница ВКонтакте, если кто-то хочет связаться — https://vk.com/thegamer881

Вы можете изменить изображение аватара на сервисе Gravatar

Добавить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

Вступай в группу!