Всем привет. В этой статье я покажу, как в конструкторе игр Construct Classic с помощью простых манипуляций можно реализовать вис на крюке/выступе/платформе. Усаживаемся поудобнее, завариваем чай и читаем :-D
Общая подготовка Перед тем, как приступить к реализации вышеуказанной техники, нам понадобится спрайт героя и настройки поведения, как "Платформер" (подробнее в статье "Создаем 2D платформер а-ля Ghost Quest на Scirra Construct"). А также анимация для виса – "Hook" (герой висит на каком-то объекте)
Добавим герою новую переменную: Выделяем спрайт героя (у меня это bazis) – во вкладке Properties – Private Variable – Add/Edit – зеленый плюс – в поле Name пишем Hook – OK - Done Также добавьте клавиатуру: Insert an object – Mouse & Keyboard
Вис на крюке/выступе Как это будет выглядеть? Мне на ум приходит игра "Черный плащ" на денди, в которой герой цеплялся за платформы/крюки/кольца и другие выступы.
Т.е. есть крюк, есть герой. Когда герой касается крюка – он зависает в воздухе. Создаем вспомогательный объект – крюк. Insert an object – Sprite – Рисуем крюк – Сохраняем Сразу переименуем созданный спрайт: Выделяем созданный спрайт – Properties – Common – В Name пишем Hook
Далее создаем еще один вспомогательный объект: Insert an object – Sprite – Рисуем квадрат размером 5х7 пикселей – Сохраняем Переименуем его в Hand. Этот объект и будет тем предметом, что цепляется за крюк, выступ и все такое. Если его не сделать, а оставить, допустим, обычный спрайт героя во весь его рост – то наш герой будет цепляться за крюк всеми частями тела, которые будут пролетать рядом с крюком (руками, головой, левой пяткой). Сперва нам нужно привязать Hand к герою. Два раза щелкаем по спрайту героя. Откроется редактор изображений. Выбираем пункт Image Point, щелкаем по центру вверху изображения (т.е. по самой макушке героя), сохраняем, закрываем.
Переходим в редактор событий (Event Sheet Editor) Правая кнопка мыши – Insert event – System – Always
New action – Hand – Set position to another object – Pick an object – bazis – в поле Image point name or number вписываем 1 – Finish
Только что мы сделали привязку объекта Hand к герою, и теперь Hand всегда будет висеть над головой героя (поставьте ему Invisible on start, чтобы он стал невидимым, это делается во вкладке Properties, где мы переименовывали спрайты, только ниже).
Второе событие должно быть следующее: если герой соприкасается с крюком и при этом он находится в падении – герой зависает. Делаем: События: 1. Правая кнопка мыши – Insert event – Hand – On collision with another object – Pick an object – Hook – Finish 2. Правой кнопкой мыши по только что созданному событию - Insert new condition – bazis (это герой) – переходим во вкладку Platform – Is falling
Действия: 1. New action – bazis – переходим во вкладку Platform – Set air acceleration – прописываем значение 0 - Finish 2. New action – bazis – переходим во вкладку Platform – Set gravity – прописываем значение 0 – Finish 3. New action – bazis – переходим во вкладку Platform – Set Y component of motion – прописываем значение 0 – Finish 4. New action – bazis – переходим во вкладку Platform – Set X component of motion – прописываем значение 0 – Finish 5. New action – bazis – Set animation – прописываем значение "Hand" (в кавычках) 6. New action – bazis – Set value – выбираем переменную Hook и прописываем ей значение 1 - Finish
В первом и втором действиях мы сделали зависание нашего героя в воздухе. В действиях 3 и 4 мы убирали продолжение движения героя после зависания. Если их не ставить, оставив только 1 и 2, то при взаимодействии с крюком наш герой продолжит движение в том направлении, в котором двигался. Действие 5 – это установка анимации "Hook", подготовленной нами ранее. В действии 6 мы установили переменной значение 1, это нам понадобиться далее, как зацепка.
Третье события формулируется так: По нажатию на клавишу прыжка, герой отлипает от крюка, подпрыгивает и ему возвращаются все первоначальные настройки. Делаем: События: 1. Insert event – MouseKeyboard – On key pressed – Z (выбираем клавишу прыжка, у меня это Z) – Finish 2. Щелкаем правой кнопкой мыши по только что созданному событию - Insert new condition – bazis – Compare a private variable – в Private variable выбираем Hook, в Comparison выбираем Equal to, в Value прописываем 1.
Действия: 1. New action – bazis – переходим во вкладку Platform – Set air acceleration – прописываем значение 1500 - Finish 2. New action – bazis – переходим во вкладку Platform – Set gravity – прописываем значение 1500 – Finish 3. New action – bazis – переходим во вкладку Platform – Set jump strenght – прописываем значение 630 – Finish 4. New action – bazis – переходим во вкладку Platform – Jump 5. New action – bazis – переходим во вкладку Platform – Set jump strenght – прописываем значение 325 – Finish 6. New action – bazis – Set value – выбираем переменную Hook и прописываем ей значение 0 - Finish
В действиях 1 и 2 мы возвратили герою стандартные значения гравитации (если у вас они были другие – прописывайте свои). В пункте 3 мы временно усилили силу прыжка героя. Это нужно для того, чтобы прыжок с крюка был повыше. В пункте 4 мы делаем сам прыжок. В действии 5 мы возвращаем герою стандартную силу прыжка. Если вам не нужно это изменение силы прыжка – удаляйте действия 3 и 5. И в действии 6 мы возвращаем переменную к начальному значению, чтобы мы могли вновь цепляться за крюки.
А в последнем, четвертом, событии мы сделаем спуск с крюка, т.е. когда игрок нажимает на кнопку вниз – герой спрыгивает и ему возвращаются все первоначальные характеристики. Делаем: События: 1. Insert event – MouseKeyboard – On key pressed – Down arrow – Finish 2. Щелкаем правой кнопкой мыши по только что созданному событию - Insert new condition – bazis – Compare a private variable – в Private variable выбираем Hook, в Comparison выбираем Equal to, в Value прописываем 1.
Действия: 1. New action – bazis – переходим во вкладку Platform – Set air acceleration – прописываем значение 1500 - Finish 2. New action – bazis – переходим во вкладку Platform – Set gravity – прописываем значение 1500 – Finish 3. New action – bazis – Set value – выбираем переменную Hook и прописываем ей значение 0 - Finish
Здесь все просто, мы возвращаем все параметры в первоначальное значение.
тебе нужно потратить кучу денег и тучу своего времени. Если располагаешь и тем и другим - вперед к вершинам
Quote (Stroy562)
R-кошелек
из регистрации лучше убери. Когда совершена покупка - только тогда проси, чтобы ставили адрес кошелька.
Quote (Stroy562)
Воспользовались бы Вы услугами этого сервиса?
при редком, уникальном и нужном контенте - отчего бы и не купить использовать в качестве продавца? Можно попробовать. Больше объявлений - больше шансов продать свое.
Добавлено (23.10.2012, 17:27) --------------------------------------------- Вернулся к Scirra Constuct, т.к. в Stencyl очень долго разбираться. Прошлые наработки вылетают с фатал еррором, начинаю все заново.
Cpt_Flash, да шутка же это =) Я пацанчика рисовал для своей игры (год назад где-то). Отошел от компа, через минут 10 подхожу - а мой пацанчик в этого рэпера превратился. Спасибо друзьям за это
Идея в следующем: У героя раздвоение тела и личности. И каждый из них хочет уничтожить другую половину. Чтобы избавиться от другого тела - нужно кое-что собрать, кое-кого побить и с кое-кем поговорить. И для достижения общей цели они друг другу помогают. Вот только кто останется в итоге...
Геймплей: По нажатию кнопки происходит смена личности. Смена мимолетна, буквально долю секунды. Личность №1 - умеет драться/стрелять. Личность №2 - драться не умеет, зато может поднимать предметы и кидаться ими, прыгает выше первого.
Есть в голове только четкая концепция второй личности. Первая мне как-то не нравится, нет фишки.
так, добавлены еще два нововведения в проект: 1) карабкание по веревке 2) горизонтальная камера. Т.е. камера двигается только по горизонтали. Для чего это нужно: уровни будут разбиты на "комнаты". Подходя к краю "комнаты", мы переходим в следующую. Во время перехода управление отключается, камера быстренько меняет свою позицию на новую "комнату" и продолжается игра (см. Castlevania, Duck Tales)
Добавлено (21.10.2012, 22:28) --------------------------------------------- Жаль только, что я художник нулевый... буду выкручиваться
Ну, хватит оффтопа, а то у модеров с каждой минутой все больше и больше причин загнать меня куда подальше.
братан, я тебя не сдам
Cpt_Flash, ооок, принесу охапку дров для растопки. Быть может, даже поленницу сооружу.
Добавлено (21.10.2012, 22:10) --------------------------------------------- Сделал передвижение героя, способность цепляться за платформы и кольца, научил его плавать и стрелять. Добавлена вода и лодка. Приступил к реализации "титаника"
Название проекта: Tiny Жанр: Платформер Автор: Я офк Пространство: 2D На чем разрабатывается:Scirra Construct Stencyl Вид в игре: Сбоку Платформа: PC Предоставление исходного кода игры: Не вопрос
Описание: Планируются 5 локаций. Места преимущественно готические, с блекджеком и призраками. Определился только с одной локацией: налетевший на рифы корабль. Как вариант - тонущий в реальном времени.
Геймплей: Обычный герой, который может бегать, прыгать, цепляться за платформы, взбираться по веревкам. На локации разбросаны 4 предмета, которые нужно собрать, чтобы открыть доступ к боссу уровня. Также на каждой локации спрятано по одному дополнительному предмету. Если собрать эти секретные части - откроется доступ к шестому, секретному, уровню.
Над способами истребления призраков еще думаю. Как варианты: 1. Обычная стрельба (Ghost Quest, Darkwing Duck) 2. Подбирать предметы и ими кидаться (Chip'n'Dale)
Локации можно проходить в любом порядке. Выводится карта, выбираете уровень - и гоу гоу гоу. Но! Так как секретные предметы спрятаны в труднодоступных местах, в которые просто так не попадешь, то чтобы открыть секретный уровень, нужно будет пройти уровни в определенном порядке. Причина в следующей особенности:
На локациях есть курьеры, которые дают герою дополнительные способности, такие как "сильный выстрел", "способность поднимать тяжелые предметы", "способность разрушать неразрушимые ранее блоки" и т.д. Чтобы их получить, достаточно просто побазарить с курьером.
И еще: "Продолжения" будут не бесконечными. Как в старых добрых играх. Но в угоду моде легких игр, эти континиумы можно будет покупать за деньги, собираемые на уровне. Собственно будет стимул к собирательству. Магазины доступен после прохождения уровня. Уровни, пройденные повторно, магазин не открывают.
P.S. Йоу пацаны, всем привет. Cpt_Flash, нужна твоя установленная в мозгу программа по созданию имен для игр. P.P.S. Фломик, жду комментов от тебя.
Ямайка! Я думаю стоит Посетить страну С позитивным настроем ^_^