nvc123, код может быть бредом только с точки зрения программиста на джассе, сорри. Думаю любой нормальный программист пришел бы к такому вопросу. (в плане конкретно вопроса, я не говорю о слипе или еще чем)
Оч смешно, никак (решений миллион, в т.ч. есть встроенные в сижассе, я говорю про то что твоя идея неверна)
Я скажу просто, коллбек может быть только "статическим" методом
Утилита полностью новая будет в ближайшем будущем, иногда чекай сайт, там все будет написано.
Ошибка комплексная довольно, сейчас два метода загрузки скринов есть старый и новый, который я тестирую и они конфликтовали.
Че неужели стандартного метода решения?
В том же джейманки модифицировать то объекты из других потоков можно сколько угодно, только в какой-то рандомный момент игра упадет с ошибкой, поэтому можно насоздавать сколько угодно своих потоков, а из них делать application.enqueue(Callable) и в callable экшны, собсно то же самое что и здесь, просто уже продумано.
Вы че прикалываетесь? MyClass1 это буллщит полный, такого не должно быть имхо, никому не советую такое нигде использовать, почему вообще такое можно писать - большой вопрос
У меня зп чуть ниже чем на скринах, дед прав, это ужасно, каждый день думаю, куда девать столько денег, подумываю снять еще две квартиры и подарить их своей кошке.
DarkDes, я говорю о том, что все это можно записать в двух внешних файлах, в одном скрипт, а в другом твои данные, которые скрипту подаются уже готовые. И никогда не придется ребилдить, скрипты они еще щас очень красивые в плане синтаксиса и много что прощающие, питон вон вообще как английский выглядит. И делается то, о чем я писал все вместе очень просто.
Тот же таргетинг допустим, определяется в скрипте какой-нибудь функцией типа
def isTargetable(Unit caster, Target target, SpellData data){
if (target is GroundTarget)
return false
if (target is UnitTarget)
return target.getUnit().isEnemy(caster) && Util.distance(target.getUnit(), caster) <= data.getCastRange()
}
Такой код и дурачок с базовыми знаниями англ языка поймет. А если для дурачков сделать красивый редактор с подсветкой синтаксиса (готовых либ тысяча в сети) и базовой проверкой самого скрипта (для этого достаточно просто вызывать функции из этого скрипта, банальные юнит-тесты), и код-темплейты, чтобы не приходилось начинать с нуля, то разберется и ребенок-дурачок, пожалуй.
И так с любыми условиями и запросами. Все уже сделано за Вас, честно.
Гспди, xgm, ну кто же делает word-wrapping в коде, ну?
-------------------
Если что, у меня все спеллы и юниты на скриптах. Единственное что сделано модульно, это периодические и временные действия выделены в отдельные переиспользуемые сущности с параметрами (т.к. игра пошаговая) и честно говоря, даже эти сущности надоедает создавать при разработке.
Оки. Хочу чтобы этот спелл можно было кастовать только на юнитов у которых меньше 100хп. И только на тех, рядом с которыми есть деревья, которые тоже загораются (это специальный интеракшн только с этим спеллом, сами деревья не больше чем декорации). И кастовать можно было только тогда (т.е. проверка должна быть еще на стадии нажатии кнопки, до выбора цели), когда рядом с кастером есть хотя бы 2 союзных юнита. Как это реализовать в параметрах и эффектах? Да и так чтобы если я еще что подобное захотел сделать, но с изменениями типа того, что юниты рядом должны быть вражеские или что еще, мне не пришлось бежать сломя голову в отдел прогеров движка. Мы же не хотим постоянно ребилдить проект, правда?
Очень смешной и однобокий пост, а музыку без оркестра тоже нельзя играть, потому что оркестр - сложная штука.
Всякие майнкрафты, лимит теори, овергроу, террарии, фезы, дварф фортресс и прочая индиборода уже не в счет? Или у них тоже команда пиар менеджера? Что значит "просто не хватит контента", это применимо ко всем играм? Они все-таки разные бывают. Не понимаю этой точки зрения.
Тогда расскажи ка что подразумевается под параметрами эффекта burning, а я тебе приведу примеры, для реализации которых эти параметры превратятся практически в скрипт, только корявый и неудобный.
И да, ребилда проекта не требуется, скрипты хранятся снаружи, для большинства не потребуется даже перезапуск приложения, при ченжах во время тестирования.
Данные хранить разумеется нужно отдельно.
Это звучит круто, но это ТЕОРЕТИКА, потому что на ПРАКТИКЕ будет тысяча корнеркейзов, где чего-то где-то не хватит и тут уж либо костылим, либо забиваем. Ах, мы же сделали супергибко? Ну получай тогда охрененно громоздкий UI уровня трех блендеров, в котором нужно еще и разбираться тысячу лет. Так на это еще и время разработки нужно потратить!
Вот меня тут вы не переубедите. Я твою идею полностью понимаю и я много где её видел и для себя прокручивал в голове тыщу раз. Но это та самая идея, которая по моему стойкому мнению НЕ БУДЕТ РАБОТАТЬ. Ну никак! Только в голове и в теории.
Блин да причем тут спецификации, на этой хрени просто будет неудобно разрабатывать. НИКОМУ не будет это удобнее, чем просто файл скрипта и файл данных, например. Напишу сотню спеллов, сделаю тысячу разных сущностей, в 90% случаев сущности не переиспользуются. Офигенно гибко, офигенно ненужно, никому не будет удобно постоянно создавать новые файлы, объекты, что угодно, пусть это супер чистое апи и здоровенская убергибкая архитектура от которой ни шагнуть ни вправо ни влево и на которой при этом можно сделать все, на реальном проекте это НЕУДОБНО. Это все, о чем я пытаюсь сказать.
Честно, уже не надеюсь, что меня кто-то поймет, в теории твоя штука выглядит оч здорово для любого неопытного программера.
alexprey, для таких придумали транслятор блоков в тот же самый код, гспди. А не парсер блоков и целую завязанную на нем систему билеберды и огромную архитектуру.
Очень влияет на гибкость, она там прекрасная. Эта гибкость и есть минус.
Послушайте, когда-то я выдумывал как бы мне сделать систему способностей для пошаговой игры и где их хранить. Вот я тоже придумывал типа различные компоненты, которые значится где-то вместе связываются в цепочку, и хранятся в базе/в файлах, а потом достаются оттуда, парсятся и каждой компоненте присваивается действие, я подумал о разных вариантах абилок, понадобятся условия, циклы, модули, что-то еще... Да это целый скриптовый язык для абилок получается... НО У МЕНЯ УЖЕ И ТАК ЕСТЬ СКРИПТОВЫЙ ЯЗЫК, ЗАЧЕМ ИЗОБРЕТАТЬ ВЕЛОСИПЕД? Точно так же и в ск2 есть скриптовый язык, на котором можно написать все что угодно, нахрена вообще редактор объектов, на котором запиливание спелла может занять больше времени? Ого, я написал этот спелл без кода, я такой крутой! Правда тут пара хаков, там пара хаков, тут мелкий баг, ну никто все равно не заметит, а потратил то я всего два дня. Вы серьезно? Кому это нужно? А потом кода поднакопилось и в итоге половина логики, а половина там.
Всё уже сделано за вас, блин. Берете любой скриптовый язык и прикручиваете, ограничиваете сендбоксом область действия, пишете внятные интерфейсы/врапперы для объектов используемых в коде - вуаля, делаете ВСЁ, ЧТО УГОДНО. Гибче кода блин, ничего не будет. Что верно заметили, данные в нем хранить не нужно.
Теории это хорошо, только когда на большом проекте поймете, что уже слишком много AbstractSingletonProxyFactoryBean и ваще хоть и офигенно гибко, но вдвойне неудобно кодить, т.к. сущностей миллион и их надо постоянно создавать, связывать и прочее, поймети что на практике оно в основном неоч выходит! Проще надо быть, я щитаю. Тот же MVC не везде применим с точки зрения удобства кодинга и везде его пихать - скорее всего ошибка.
» WarCraft 3 / метод
Ред. Doc
» WarCraft 3 / метод
» WarCraft 3 / метод
Я скажу просто, коллбек может быть только "статическим" методом
» Spider Traps / Версия v4n [Релиз]
Ошибка комплексная довольно, сейчас два метода загрузки скринов есть старый и новый, который я тестирую и они конфликтовали.
Ред. Doc
» Spider Traps / Версия v4n [Релиз]
Могла быть ошибк, переделываю сайтик почти с нуля. Перезалей.
Спасибо что указал на косяк, хорошо что не успел выложить в продакшн, разобрался
» Unity / Многопоточность
» Unity / Многопоточность
В том же джейманки модифицировать то объекты из других потоков можно сколько угодно, только в какой-то рандомный момент игра упадет с ошибкой, поэтому можно насоздавать сколько угодно своих потоков, а из них делать application.enqueue(Callable) и в callable экшны, собсно то же самое что и здесь, просто уже продумано.
» Программирование / Реализация нескольких интерфейсов с общим родителем
» Программирование / Реализация нескольких интерфейсов с общим родителем
В интерфейсах методы не реализуются
Интерфейсы содержат сигнатуры методов
Если сигнатура совпадает то в чем вообще вопрос?
» Low-Poly Art в игровой индустрии / Сложности игровой разработки
» Low-Poly Art в игровой индустрии / Сложности игровой разработки
Ред. Doc
» Бродилка / [Лог #7] Класс рисовальщика.
Ред. Doc
» Бродилка / [Лог #7] Класс рисовальщика.
Ред. Doc
» Low-Poly Art в игровой индустрии / Сложности игровой разработки
» Бродилка / [Лог #7] Класс рисовальщика.
И да, ребилда проекта не требуется, скрипты хранятся снаружи, для большинства не потребуется даже перезапуск приложения, при ченжах во время тестирования.
Данные хранить разумеется нужно отдельно.
» Бродилка / [Лог #7] Класс рисовальщика.
» Бродилка / [Лог #7] Класс рисовальщика.
Ред. Doc
» Бродилка / [Лог #7] Класс рисовальщика.
» Бродилка / [Лог #7] Класс рисовальщика.
» Бродилка / [Лог #7] Класс рисовальщика.
» Бродилка / [Лог #7] Класс рисовальщика.
Ред. Doc
» Бродилка / [Лог #7] Класс рисовальщика.
Послушайте, когда-то я выдумывал как бы мне сделать систему способностей для пошаговой игры и где их хранить. Вот я тоже придумывал типа различные компоненты, которые значится где-то вместе связываются в цепочку, и хранятся в базе/в файлах, а потом достаются оттуда, парсятся и каждой компоненте присваивается действие, я подумал о разных вариантах абилок, понадобятся условия, циклы, модули, что-то еще... Да это целый скриптовый язык для абилок получается... НО У МЕНЯ УЖЕ И ТАК ЕСТЬ СКРИПТОВЫЙ ЯЗЫК, ЗАЧЕМ ИЗОБРЕТАТЬ ВЕЛОСИПЕД? Точно так же и в ск2 есть скриптовый язык, на котором можно написать все что угодно, нахрена вообще редактор объектов, на котором запиливание спелла может занять больше времени? Ого, я написал этот спелл без кода, я такой крутой! Правда тут пара хаков, там пара хаков, тут мелкий баг, ну никто все равно не заметит, а потратил то я всего два дня. Вы серьезно? Кому это нужно? А потом кода поднакопилось и в итоге половина логики, а половина там.
» Бродилка / [Лог #7] Класс рисовальщика.
» Бродилка / [Лог #7] Класс рисовальщика.
Ред. Doc
» Программирование / Безумно короткий самоучитель по C#. Часть 1 из 2.
Процедура не возвращает, функция возвращает, метод - функция у объекта, вы хоть бы википедию прочитали, программисты теоретики