Как сделать кнопку shop
Такой вопрос может возникнуть, например, в кликере на C2, когда нужно ограничить игроку возможность покупать все подряд. Часто активные и неактивные кнопки используются для магазинов.
В своей игре " Маятник " я делала ограничение с помощью второго кадра, поэтому покажу именно этот вариант. Он будет выглядеть так:
Для начала, нужно создать саму кнопку. Процесс ее создания я уже описывала в статье о том, как создать простую кнопку , но сейчас понадобятся несколько иные настройки.
Для этого урока нужно две обычные кнопки, и второй кадр для каждой. Можете создать свои или взять нарисованный мною шаблон:
Наполнение уровня
Создаю новый проект в Construct 2. Настройки холста и размера экрана для игры не имеют значения.
Первым делом загружаю в проект две кнопки. Изначально кнопки будут не активного цвета.
Добавление кнопок в проект - путь: нажимаю правой кнопкой мыши на холст и выбираю Insert new object --> выбираю Sprite --> Insert --> нажимаю на холст, чтобы открылся редактор изображений --> загружаю шаблон через иконку папки в верхнем меню редактора изображений --> в левом меню редактора выбираю Rectangle select --> выделяю кнопку и нажимаю дважды на Crop на верхней панели --> закрываю редактор без сохранения
Теперь добавляю второй кадр для каждой кнопки, с более ярким вариантом.
Добавление второго кадра - путь: нажимаю дважды на добавленную кнопку, чтобы открыть редактор изображений --> в отдельном окошке Animation frames нажимаю в пустом месте правой кнопкой мыши и выбираю Add frame --> загружаю в появившийся кадр шаблон и вырезаю более яркую кнопку через Rectangle select --> нажимаю дважды на Crop на верхней панели --> теперь свожу центры кнопок с помощью кнопки Set origin and image points в левой панели редактора изображений. Нужно проследить, чтобы цифры совпадали (см. гиф) --> закрываю редактор без сохранения
Чтобы кнопки сразу не перескакивали на более яркий кадр, следует поставить скорость анимации на 0.
Изменение скорости анимации - путь: нажимаю на загруженную кнопку дважды, чтобы открыть редактор изображений --> в отдельном окошке Animation нажимаю на Default и в левой основной панели нахожу Speed --> ставлю значение 0 --> закрываю редактор изображений без сохранения
После этого я добавлю текст на каждую кнопку для обозначения цены.
Добавление текста для цены - путь: нажимаю правой клавишей мыши на холст и выбираю Insert new object --> выбираю Text --> Insert --> нажимаю на холст, чтобы проявить текст --> по желанию, настраиваю параметры текста в левой основной вкладке
Добавляю мышку в проект, чтобы накликать позже цену.
Добавление мыши в проект - путь: нажимаю правой клавишей мыши на холст и выбираю Insert new object --> выбираю Mouse --> Insert
Устанавливаю цену прямо в тексте. Лучше всего это делать в Event sheet, где прописывается механика, но если цены не меняются по ходу игры, то можно сделать и так.
Установка цены - путь: нажимаю на текст --> в левой основной вкладке напротив Text вписываю цену (здесь для первой кнопки 5, для второй 10)
И, в добавок, я привношу в проект еще один текст, который будет выводить количество кликов на экране.
Текст для вывода количества кликов - путь: нажимаю правой клавишей мыши на холст и выбираю Insert new object --> выбираю Text --> Insert --> нажимаю на холст, чтобы проявить текст --> по желанию, настраиваю параметры текста в левой основной вкладке
Механика
Теперь очередь работать со вкладкой Event sheet и одной глобальной переменной.
Глобальные переменные удобны тем, что их можно сбрасывать по ходу игры, сохранять, изменять. Глобальная переменная, которую я создам сейчас, будет записывать количество кликов, которые я сделала на экране.
Создание глобальной переменной - путь: перехожу в Event sheet в верхних вкладках --> нажимаю правую клавишу мыши и выбираю Add global variable --> в Name пишу money (название переменной) --> OK
Первым событием в механике я сделаю вывод количества кликов на экран при игре.
(событие) Вывод количества кликов в тексте - путь: нажимаю правую клавишу мыши и выбираю Add event --> System --> Next --> Every tick --> Done
(действие) Вывод количества кликов в тексте - путь: напротив события нажимаю Add action --> нажимаю на тот текст, который был создан для вывода текста, а не цены --> Next --> Set text --> Next --> в Text я прописываю "Деньги: " & money --> Done
"Деньги: " обозначает текст, который будет показан при запуске проекта. Обязательно ставлю пробел после двоеточия, иначе при игре отображаемое количество кликов будет написано вплотную.
После этого я делаю набор кликов с помощью мыши.
(событие) Набор кликов с помощью мыши - путь: нажимаю правую клавишу мыши и выбираю Add event --> Mouse --> Next --> On click --> Next --> Done
(действие) Набор кликов с помощью мыши - путь: напротив события нажимаю Add action --> System --> Next --> Add to (в подразделе Global & local variables) --> Next --> в Variable должно стоять название глобальной переменной money, а в Value значение 1 --> Done
Теперь настало время использовать второй кадр для каждой кнопки.
(событие) Механика для активации кнопки - путь: нажимаю правую клавишу мыши и выбираю Add event --> System --> Next --> Compare variable --> Next --> в Variable должна стоять глобальная переменная money; в Comparison выставляю ⩾ Greater or equal, что означает больше или равно; в Value прописываю цену (для первой кнопки 5, для второй 10) --> Done
(действие) Механика для активации кнопки - путь: напротив события нажимаю Add action --> кнопка --> Next --> Set frame --> Next --> в Frame number прописываю значение 1--> Done
После этого копирую получившееся событие и действие, а затем нажимаю на событие правой кнопкой мыши и выбираю Invert.
Напротив инвертированного события, в действии, меняю Frame number обратно на 0.
Для второй кнопки действия те же самые, но вместо 5 нужно указать 10, то есть, цену, указанную в тексте на уровне.
В итоге, весь механизм должен выглядеть так:
Чтобы произошла покупка, то есть, вычитание из глобальной переменной, нужно прописать это отдельно.
(событие 1) Вычитание при покупке - путь: нажимаю правую клавишу мыши и выбираю Add event --> Mouse --> Next --> On object clicked --> Next --> В Object clicked я выбираю текст, который обозначает цену за кнопку --> Done
(событие 2) Вычитание при покупке - путь: нажимаю правую клавишу мыши и выбираю Add event --> выбираю кнопку --> Next --> Compare frame --> Next --> в Number вставляю цифру 1 (что обозначает активную фазу кнопки) --> Done --> перетаскиваю второе событие к первому так, чтобы они состыковались. После этого удаляю оставшуюся внизу ячейку из-под события.
(действие) Вычитание при покупке - путь: напротив события нажимаю Add action --> System --> Next --> Subtract from --> Next --> в открывшемся окошке в Value вписываю цену (для первой кнопки 5, для второй 10) --> Done
Читайте также: