Какпрыгнутьизсостояниялёжа
Есливычиталимоипредыдущиистатьи,тознаете,чтояоченьчастобросаюпроектынеоконченными。 Иногдадоводядокакого-то«приемлемого»состояния,ночащевсегопростотеряякниминтерес токачествонеделатмнечести,以及ярешилпопробоватьнемногопоборотьсясним。 Дляэтогоявыбралто,чемя,вероятно,смогузаниматьсяотносотоеере Такого,чтобыможнобылосказать,чтояимдоволен。
Конечно,что-топодобное,Ludum Dare,нотамбылилюди,которыесделалито,чтонемо, Нуисрокитам,конечно,совсемдругие。 Вэтотразмнеточнопридётсяпройтинесколько«волн»потериинтересаисправитьсясними。 Вкачестведополнительногоусловия(сразунескажешь,усложняющегоилинаоборот)ярешее Вэтотраз,правда,наволнеэнтузиазма,материалнастатьюнабралсявсеголишьзатридня,такчт Такжеяпостараюсьвыйтинановыйуровеньстатей,подготавливаядлякаждойкакможнобольшематериал。 Этопроцесситеративный,итаккакименновыпотребляетеэтотвидконтента,выражаттсвоимысл。
Уменяужеестьмножествоидейкакповизуальномустилю,такипомеханикеигры。 И,сразуоговорюсь,чтояделаюигрудлясебя和анедлятогочтобыпродатьиличто-топодобное。 Такчтоянетолькобудуиспользоватьминимумготовогоматериала(да,япланируюдажерисоватьсам) Еслиуменяпоявятсятестеры(аскакого-томомента,яхочуначатьписатьна书签交易) – будетчудесно,ноявсе-такипостараюсьделатьне«чтобыбыло»,анасовесть。
Почемуярешилделатьименноигру? Да,банально,ноуэтогорешенияестьдванеоспоримыхплюса。 Во-первых,созданиеигрыохватываетмножествообластейкакпрограммирования,такиприменениятворческойэнергии,азначитестьшанснеутонутьврутине。 Во-вторых,чтотоженемаловажно,您在игрестьболееилименеепонятныекритерииготовности。 Расплывчатые,нохотьчто-то。 И,в-третьих,игра—этоотносительноуниверсально,почтикаждыйсможетхотябыпретоообъём
Шестерёнки
Покаяневзялсязаграфикуипрочиевизуальныештуки,акакпоказалапрактика,нестоитснихначинать,яиспользуюготовыеспрайтыизнабора肯尼资产2.ПоэтомупокамоимглавнымгероембудетБерти。
UnityрешилсноваобратитьсякдвижкуC ++,它是Unity, Неточтобыэтовызвалокакие-топроблемы,нонемногожаль。 Покауменявсёвголовенеустоялось,небудураскрыватьвсекарты,ноиграбудетдвухмерная,пов。 Исчегоначинаетсянашбуфет? Правильно,суправления。
ОткройлюбуюобучающуюстатьюпоUnityитеберасскажуткаксделатьуправление。 Дачеготам,каждыйшкольниксообразит,чтодостаточнопроверятьвиилленажаталикнопкаидвига Тристрочки。 Илинет?
Ещёдоначаланаписаниякода, Аяпомимопрочегохочусделатьсложныесистемыбояидвижения。 Недавноярассказывал,чтописалсистемуклавиатурныхсочетаний,основаннуунапоследовательныхнаж。 Таквот,вигревсёбудеткудасложнее,ведьтамгораздострожеделообстоитсзадержкамикуда Такчтоявспомнилкогда-тодавнопрочитаннуустатью,прото,чтофайтингиосновываютоенаконечн。 Уменяотэтоготарминаканцеляритслучается,такчтоябудусбиватьсянаанглицизмы。
Таквот。 Основнаяидеявтом,чтоперсонажвкаждыймоментвременинаходитсявнекомсостоянии,котороеотвечаетзаегоповедение,атакжезавозможныеизмененияэтогосостояния。 Инымисловами,еслиБертипрыгнулиещёлетит,оннеможетпобежатьилипрыгнутьещёрае(илиможет。 Вмоейсхемеэтоозначает,чтосостояниязанимаютсятем,чтослушаютнажатиякнопокидругиепараметрыгероя,чтобывнужныймоментпереключитьсостояниенакакое-тодругое。 Самжеперсонаж,以及только«перемещает»изображениевнужныевнужныеконнееконтроллердвижения。 Здесьневерныкакслово«перемещает»,таки«изображение»。 Нообэтомпозже。
Следуеттакжеотметить,чтосостоянияоченьпомогутмне,когдаязаймусьанимациейизвуками,таккакименно«вход»всостояние – этотоместо,гденачинаетсязвукилиочереднаястадияанимации。
Признаюсь,янестализобретатьвелосипед,ивзялготовуюреализациюстейт-машины。 Правдаонавсегопорядкастастрочекибольшаячастьизнихмнененунна。 ,уженемногоизменилеёи,вероятно,скороотнеёивовсеничегонеостанется。 Такчтоясебяпростил。
Попячемся
Апоканачнём。 Иначнёмсшаговвперёд-назад。 Почему-тоязахотелчтобынаправлениевзглядаперсонажабыловажно,ноприэтомсамрагрлоспо。 墨西哥 Такчтоуменя,каквфайтингах,будутшаги«назад»и«вперед»。 Опять-таки,думаяобанимации,эторазумно。
Всемизвестно,чтолюбаядороганачинаетсясодногошага。 ПоэтомузададимБертрамусостояниеIDLEизаймёмсяшагами。 Насамомделе,сразупридетсядуматьобудущем,чтобынепереписыватьлишнийраз。 Чтовыожидаете,нажимаянакнопкунаправления? Логично,чтото,чеммыуправляем,сразуначнетдвигаться。 Амыдержимкнопку,чтобыдвижениепродолжалось。 Ивсебылобыпросто,нерешияпридуматьсебесложностей。 Например,яхочуперекаты。 :точастыйкейс:дваждыбыстронажимаешьстрелкуиперсонажделаетрывоквуказаннуюсторону。 Обычноэточто-товродекувырка,частоещеизащищающегоотполучаемогоурона。 Оченьважныйтактическийприём,позволяющийрватьдистанциюиуклонятьсяотударов。 ПоэтомумнеипонадобилисьэтинесколькотехническиесостоянияSTEPиBACKSTEP 。 Онинетольконачинаютдвижение(заэтимследитконтроллер,анесостояние),онитакжезапускаюттаймер,поистечениюкоторого,есликнопканебудетотжата,состояниесменитсянаWALK,тоесть,непрерывноедвижение。
Еслижепроизойдётещёоднонажатие, томыпереключаемсянасоответственноDASHилиBACKDASH 。 Посути,этототжесамый«шаг»,ночутьдольшеибезусловнопереходящийвIDLE。 Язрзз
左 / 右 хранитсяНаправлениевконтроллере。 Шагизапоминаютнаправление,накотороепроизойдётпереключениепривходевсостояниипостоянногодв。 Направлениевлияетназнакизменениякоординат,атакжеотрисовкуспрайтаипригодитсявбудущемдляопределениятого,спинойилилицомБертистоиткстене。
Физикапротив
Механикудвижениямнепришлосьпереписыватьраз,наверное,пять。 Хотяпервыйвариант,всеголишьперемещалобъектвуказанныекоординаты,ужетамбылонемножко。 Всёделов,чтоясразурассматривалБертрамакакобъект,лежащийнаплоскости,аневисящий。 Унасбылтвёрдыйпол,детекторстолкновенийигравитация。 Казалось,добавьдвижениевверхивотутебяпрыжки。
Неа。 Еслипропуститьвсюболь,которуюяиспыталвпроцессе,тодвижениесейчасработаеследующимом Двеэтипеременныеуправляютсяконтроллером,которыйменяетихвзависимостиоттекуооноон Силазадаётвекторперемещенияпоземлеионадействуетвремя,покаактивированосостояниедвиж。 Импульсотвечаетзапрыжки(коихуменяажтри),иотрабатываетмгновенно(нупочти)。 Такимобразомполучается,чтовсёсложное,вродепрепятствий,наклонныхплоскостей,гравити Оноченьособенный,новцелом,значительнолучшевсего,чтосделалбыя。
Пришлось,правда,вбитьпарукостылей,нокудабезэтого。 Например,инерцияотдвижения,которуюприходитсягаситьприокончаниидвижения。 Даещёигаситьплавно,чтобывыгляделореалистично。 Азналибывы,скольковремениянемогпонять,почемуБертиотскакиваетотполаприприземлени! Уматериаловжовпоказателе«отскакиваемости»! Аннет,этогонедостаточно,ведьеслисильностолкнутьдватвёрдыхпредмета,онивсёравноотско。 ТакчтокогдаБертикасаетсяземли,附近的国家, Скореевсего,большаячастьэтихкостылейвызванамоимнезнаниемтонкостейдвижка,нотаккаквсёравноещёнесколькоразвсёэтопридётсяпеределать,пустьпокаживёттак。
Насамомделепрыжокизтрёхсостояний:собственноJUMP, MIDAIR (когдавзлётослабеваееиечее Такоеразделениенетолькопозволяетдобавлятьновыедвижениявпрыжке,ноиболеетонре Есликратко,тосхемавыглядиттак:
- Бертистоитназемле,нажатакнопкапрыжка
- ПереходимвссостояниеJUMP,задаемимпульс,направленныйвверх
- УскорениезамедляетсядоуказаннооопорогипMIDAIR,ускоряемпадение,таккакеннее
- Начинаембыстропадать,переходимвсостояниеFall
- Всё,мыназемле,переходимвIDLE(илиWALK和еслинажатакнопкадвижения)
Звучитпростоилогично,нетакли? Ага,когдачитаешьужеготовыйвариант。
ЕгоВоздушество
Следующиедва«движения»ясделалотключаемыми,вероятнеевсего,онинебудутдоступныигроанигроан。 Этодвойнойпрыжокиуправлениенаправлениемпадения。 Первоеяреализовалввиде«мгновеннооосостояния,котороесрабатываетнаодинкадриеатандопо Авотсуправляемымпадениемтакнеполучилось,таккакпришлосьбывводитьнекийфлагсостояния,отвечающийзато,нажаталикнопкадвиженияипроверятьеговконтроллере。 Аястараюсьизбегатьподобногосвязыванияиограничиваюсьтолькопроверкойтипасостояния,котораяопределяеттолько,являетсялитекущеесостояниеэкземпляромтогоилииногокласса。 Поэтомуясделалсвязьвобратнуюсторону,тоестьсостояниедёргаетметодконтроллера,которыйдобавляетсилудвижения,ровнокакэтоделаетперемещениепоземле。 Таккакэтоименноприданиесилы,以及неперемещениевкоординаты,
ЛордБертрам,междупрочим,вмолодостибылниндзя。 Насамомделенет。 Онвыработалумениелазатьпостенам,когдазабиралсяпоплющувокнолюбимой。 Такилииначе,пришлосьделатьемуещёодну«умелку»-прилипаниекстенам。 ДляопределениястоитлиБартинатвёрдойземлеяприменяюотдельныймаленькийобработоинстолкнов Такимжеобразомянахожуикасаниястен。 Контроллерпосигналунетекторовопределяет, Есливпаденииподнимаетсяэтотфлаг,тосостояниеменяетсянаWALLSTICK,вкоторомнетолькозамедленнопадение,ноисновавозможносделатьпрыжокиликонтролировать падение ,дажееслиспособностинеактивированы。 Таккакприэтомещёпроисходитразворотвторонуотстены,можновзобратьсянавысотоеве
Первыевпечатления
Вообще,разрабатыватьигруоченьвесело,особеннотечасти,которыесразувидно。 Прыгает—хорошо。 Непрыгает—плохо。 Ноприэтомещёибагисразувидно。 Зачастую,оченьзабавные。 Жальидеяснять«неудачныедубли»пришлаужевконцеэтойитерации,такчтоязаписалбуквалнин。 Ведьименноэтимразработчикзанятбольшуючастьвремени,«играет»всвоёдетище,таккаквиграхдажемалейшиекосякиуправлениясразубросаютсявглаза。 Поэтомуприходитсятестировать,тестироватьиещёразтестировать。 Иэтопритом,чтоскороопятьвсёпеределывать。
Дальшеяподумываюнаконецзанятьсяграфикой。 ТоестьсделатьспрайтыдляБерти,попробоватьанимациюиуженачатьделатьвсёостальноерраках Такчтонепереключайтесь!
PSПриразработкепрототипанепострадалниодинглазастик,以及такженебылоупотребленониодногоо。
PPSВозможно,стильэтойстатьинесколькоотличаетсяотобычных,таккакяписалееурывками。 Болеетого,япыталсяизбегатьслишкомнеправильныхоборотовислов,以及которыебыругалсяспелле。 Нефакт,чтоэтопошлонапользу。 В«ё»икавычках-лапкахянесколькоболееуверен。 Ноэтоужевамрешать。