Помимо всего прочего, вместо юнитов можно создавать непосредственно спецэффект, правда я не помню уже подходит ли модель ауры для этой цели и не помню есть ли возможность его масштабирования.
Черная Чайка, а если попробовать поселение под шляпкой гриба построить по другим правилам? Не с ровным полом и произвольной высотой крыши отдельного дома, а наоборот? Т.е. фиксировать верхнюю точку и от неё гроздьями спускать постройки.
RSQR,
А что если разрешить стакаться только юнитам одного типа и только до определенного лимита в одном месте? А для переброски через союзников добавить дополнительный инструмент, которым игроку нужно было бы пользоваться вручную - что-то вроде левитации, но менее мощное и более доступное.
Кет, уходили, если мне не изменяет память, не столько от тулбара, сколько от не самого удобного способа форматирования. В те времена казалось, что новый способ форматирования настолько прост, что тулбар банально не нужен (и по большому счету тогда так и было - функционал был несравнимо более скромный, чем сейчас), кроме того это был один из своеобразных фильтров, позволявший выявить пользователей, не способных освоить даже простейшие вещи.
P.S. могу ошибаться, ведь это было давно, да и многие подробности мне не известны.
Kozinaka, небольшой багрепорт. Возможно это известная проблема, но иногда откушенный кусок тела червя продолжает волочиться за червем вместо того чтобы остаться лежать на земле, что выглядит так, будто у червя два хвоста. При этом новые сегменты похоже появляются в конце этого прилипшего ранее откушенного куска (не было возможности детально исследовать). Причем червь постоянно держит пасть открытой, если прилипший кусок в радиусе открытия челюстей, более того, можно ухитриться и откусить часть от прилипшего куска. Особо неприятно когда это происходит с другим черным червем.
Kozinaka, вот оно как. Получается я выдумал этап переваривания, которого на самом деле нет. В таком случае от более продвинутого индикатора толку действительно не много.
Может тогда можно хотябы группировать одновременно проглоченные куски в одну полоску индикатора чтобы меньше захламлять экран?
Kozinaka, ну мне просто не очень понравилась текущая реализация индикаторов переваривания - выглядит скорее как отладочная информация, чем как элемент игрового интерфейса и я предложил вариант как это можно реализовать другим способом.
Есть важный нюанс - насколько я понял, сейчас каждый кусок проглоченной пищи переваривается отдельно от остальных, а его пищевая ценность добавляется только после полного завершения переваривания, а такой индикатор подразумевает накопление непереваренной пищевой ценности в виде числового значения и постепенное преобразование в массу следующего звена.
Разница не очень велика, вплоть до того, что к индикатору можно прикрутить любую из двух реализаций, но отличия все-же есть. Например, в ситуациях, когда до следующего звена осталось совсем чуть-чуть, а червь глотает более крупный кусок.
Лично я бы выбрал вариант с числовым представлением, но и у кусочного подхода есть свои плюсы.
Шкала заполняется при проглатывании пищи. На шкале есть отметка сколько осталось до следующего сегмента. Шкала и отметки на ней смещаются вниз в процессе переваривания. Когда отметка следующего сегмента доходит до нуля - добавляется новый сегмент, а отметка сдвигается до позиции для следующего сегмента.
Плавное постоянное переваривание мне было лень рисовать, но оно подразумевается.
Можно делать и больше одной отметки следующего сегмента, если они умещаются на шкале.
Можно добавить новый геймплейный элемент - влияние пищи на общую скорость переваривания червем чего бы то ни было. Наелся, например, червь ядовитых ягод и будет мучаться от несварения какое-то время - ползать с пониженной скоростью переваривания, а может и не только переваривания.
Также можно ограничить максимальный запас эффективно перевариваемой пищи, в зависимости от размеров червя - все что не умещается в шкалу либо игнорируется либо накапливается в отдельной переменной и добавляется оттуда к основному циклу метаболизма, но с пониженной эффективностью. Впрочем, без отрицательных модификаторов переесть врядли должно быть возможно.
P.S. у меня там еще один косяк - при записи не перемотал анимацию в начало, так что индикатор сегмента сперва на финальном положении стоит, потом прыгает до стартового и потом в процессе анимации возвращается к финальному.
Kozinaka, да я и не предлагаю это реализовывать - мне просто понравилась картинка, которую я представил, вот и решил поделиться. Тем более, что у тебя чистые 2д спрайты, а представленное мной без полноценного 3д многократно теряет в качестве и эффектности.
Представил себе это в 3д и с несколько другим сеттингом, получилось сильно, так что решил поделиться - может будет интересно.
Представьте себе типичный постапокалиптический пейзаж - заброшенный город, полуразрушенные дома, ржавые машины и ни одной живой души вокруг. И по всему этому великолепию ползают, нет не зомби, а черви-роботы, пожирающие все на своем пути, но в основном интерсующиеся металлическими предметами и электроникой. Причем черви самых разных размеров и окраса - самые маленькие довольствуются скрепками да монетками на письменном столе, а самым большим под силу проглотить сразу целый дом, вместе со столом и мелкими червями, ну а окрас и вовсе зависит от того, чем в последнее время "питался" червь.
С точки зрения геймплея в одиночном режиме это еще можно разделить на различные уровния как в споре - например, сперва карта органичена столом или другой плоской поверхностью, а при достижении определенного размера происходит масштабирование, карта расширяется, появляются новые возможности и так до полного уничтожения города.
lentinant, мое понимание SOLID:
S - один класс на одну задачу, сложные задачи разбиваются до подзадач и, соответственно, получаем один класс на большую задачу и по классу на подзадачу. Условно можно выразить так "если класс занимается выпеканием хлеба, то он не должен заниматься его доставкой". Важно не увлекаться дроблением сверх меры на этапе проектирования - если видишь что класс начинает разбухать и обростать группами не связанных методов, то самое время использовать этот принцип.
O - избегать изменения контрактов уже стабилизировавшегося кода. Применяется когда код уже может где-то использоваться как зависимость. По сути это требование обратной совместимости - расширять функционал можно и нужно, но старый код, зависящий от твоего, должен работать даже после превращения калькулятора в подводную лодку с вертикальным взлетом.
L - требование, согласно которому экземпляры родительских объектов должно быть можно заменить экземплярами дочерних объектов, не нарушая целостности программы. По сути это критерий, по которому можно определить и устранить избыточное или неправильное наследование, заменив его наследованием обоих объектов от общего родителя или агрегацией или хоть чертом лысым - сам принцип ничего не говорит о том, как именно его надо выпонять. Есть небольшой нюанс - применяется этот принцип только к экземплярам классов, а не к ссылкам или самому дереву наследования - если, например, где-то есть ссылка на A, который родительский класс для B, но по факту там используются только экземпляры классов B, C и D, то "nothing to do here".
I - аналог S для интерфейсов. Его главная идея в том, что не стоит перегружать класс, реализующий интерфейс, лишними методами.
D - суть в том, чтобы разорвать связи между объектами, находящимися на разных уровнях абстракции. Применяется в обоих направлениях - и для менее абстрактных объектов, включенных в более абстрактный и наоборот, более того - применяется не только при прямом включении, но и к любым другим ссылкам. Предположим нам нужно составить програмную модель кирпичной стены, класс стены не должен ничего знать о конкретных реализациях кирпичей и работать с любыми кирпичами, какие ему дадут, а кирпичи не должны напрямую зависеть от конкретных реализаций стены и быть пригодны к использованию в любой стене (или другой конструкции, если модель подразумевает не только стены).
Еще хочу сказать, что слепое следование всем принципам ни к чему хорошему не приводит - важно понимать грань, за которой начинается ад и содомия и вовремя остановиться.
а локальные файлы использовать для работы с редактором, а потом их отключать и переходить на mix для тестирования?
или я все забыл уже и локальные тоже не подхватывает редактором?
NCrashed, а насколько сложно будет подключить это дело к джаве, обертки небось писать и нативные либы биндить придется? Так то я предпочитаю Lua, но почему бы и не добавить разнообразия.
Что касается альтернатив - есть еще, как минимум, питон и JS.
» WarCraft: Armies Of Azeroth / То, что вы смущались спросить
» WarCraft 3 / Игровое сообщение
» WarCraft: Armies Of Azeroth / То, что вы смущались спросить
» WarCraft 3 / Указание места атаки
» Черная Чайка / Важный вопрос
Космос и дизайн в стиле стимпанка - очень даже ничего.
» Черная Чайка / Немного интерьерного рендера
Ред. prog
» Несыть / Тестовый билд с возможностью моддинга
Ред. prog
» Черная Чайка / Грибная помешанность // Update 2
» Forged Victory / Мы вас обманули :)
» Forged Victory / Мы вас обманули :)
А что если разрешить стакаться только юнитам одного типа и только до определенного лимита в одном месте? А для переброски через союзников добавить дополнительный инструмент, которым игроку нужно было бы пользоваться вручную - что-то вроде левитации, но менее мощное и более доступное.
Ред. prog
» Блог им. AlexPrey'я / XGM Update Log
» Несыть / Альфа версия 3.5а
Ред. prog
» Несыть / Альфа версия 3.5а
» Lo of the Dark / Lo of the Dark 0.8.1 - няшнофичи!
» Несыть / Несыть
» Несыть / Несыть
Ред. prog
» Несыть / Несыть
Можно делать и больше одной отметки следующего сегмента, если они умещаются на шкале.
Можно добавить новый геймплейный элемент - влияние пищи на общую скорость переваривания червем чего бы то ни было. Наелся, например, червь ядовитых ягод и будет мучаться от несварения какое-то время - ползать с пониженной скоростью переваривания, а может и не только переваривания.
Также можно ограничить максимальный запас эффективно перевариваемой пищи, в зависимости от размеров червя - все что не умещается в шкалу либо игнорируется либо накапливается в отдельной переменной и добавляется оттуда к основному циклу метаболизма, но с пониженной эффективностью. Впрочем, без отрицательных модификаторов переесть врядли должно быть возможно.
» Несыть / Несыть
Ред. prog
» Несыть / Несыть
Ред. prog
» Программирование / Реализация нескольких интерфейсов с общим родителем
» Программирование / Реализация нескольких интерфейсов с общим родителем
Ред. prog
» Программирование / Принципы SOLID
S - один класс на одну задачу, сложные задачи разбиваются до подзадач и, соответственно, получаем один класс на большую задачу и по классу на подзадачу. Условно можно выразить так "если класс занимается выпеканием хлеба, то он не должен заниматься его доставкой". Важно не увлекаться дроблением сверх меры на этапе проектирования - если видишь что класс начинает разбухать и обростать группами не связанных методов, то самое время использовать этот принцип.
O - избегать изменения контрактов уже стабилизировавшегося кода. Применяется когда код уже может где-то использоваться как зависимость. По сути это требование обратной совместимости - расширять функционал можно и нужно, но старый код, зависящий от твоего, должен работать даже после превращения калькулятора в подводную лодку с вертикальным взлетом.
L - требование, согласно которому экземпляры родительских объектов должно быть можно заменить экземплярами дочерних объектов, не нарушая целостности программы. По сути это критерий, по которому можно определить и устранить избыточное или неправильное наследование, заменив его наследованием обоих объектов от общего родителя или агрегацией или хоть чертом лысым - сам принцип ничего не говорит о том, как именно его надо выпонять. Есть небольшой нюанс - применяется этот принцип только к экземплярам классов, а не к ссылкам или самому дереву наследования - если, например, где-то есть ссылка на A, который родительский класс для B, но по факту там используются только экземпляры классов B, C и D, то "nothing to do here".
I - аналог S для интерфейсов. Его главная идея в том, что не стоит перегружать класс, реализующий интерфейс, лишними методами.
D - суть в том, чтобы разорвать связи между объектами, находящимися на разных уровнях абстракции. Применяется в обоих направлениях - и для менее абстрактных объектов, включенных в более абстрактный и наоборот, более того - применяется не только при прямом включении, но и к любым другим ссылкам. Предположим нам нужно составить програмную модель кирпичной стены, класс стены не должен ничего знать о конкретных реализациях кирпичей и работать с любыми кирпичами, какие ему дадут, а кирпичи не должны напрямую зависеть от конкретных реализаций стены и быть пригодны к использованию в любой стене (или другой конструкции, если модель подразумевает не только стены).
Ред. prog
» WarCraft 3 / Помощь с mix архивами
или я все забыл уже и локальные тоже не подхватывает редактором?
» hjass / hjass