|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Я то, вообще, имел ввиду что можно попытаться абстрагировать все к одному классу, типа
var skill:Skill = new Skill(0xFFA099); // ID способности в таблице — для заполнения всех свойств способности _player.addSkill(skill); // способность добавляется в _skills:Vector.<Skill> персонажа callme, Вам не удастся вытянуть меня на очередной холивар по MVC, их тут было более чем достаточно)) Я даже на описание топикстартером "толстых" контроллеров не стал реагировать, хотя являюсь их ярым противником — настолько логично он описал свое видение MVC применительно к своему случаю. Добавлено через 4 минуты Цитата:
Добавлено через 15 минут Почему я использовал здесь _player.addSkill(skill); а не, допустим, _player.skills.push(skill); Потому что метод позволяет добавить дополнительные параметры, не связанные с самой способностью — например, время наличия способности у персонажа, если оно не бесконечно и способность должна исчезнуть через 30 секунд (допустим, вызвана употреблением эликсира — тогда это время является свойством эликсира, а не способности). Добавлено через 20 минут И да)) наверное совсем не обязательно грузить память целым объектом, экземпляром класса Skill. Наверняка достаточно хранить только ID и тащить данные из таблицы только тогда, когда надо будет просчитать применение и создать анимации эффектов.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Цитата:
Я могу модифицировать метод Animal.eat независимо от класса Orange. Но никто ведь не станет это называть паттерном AO (Animal-Orange). Это просто ООП. |
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
Wolsh, Tails,
Все же мне не очень нравится ваше решение с таблицей эффектов по следующим причинам: 1. Что делать, когда я захочу добавить новый эффект? Добавлять его во все строки таблицы? 2. Особые эффекты, свойственные только одной способности, например, размытие экрана, должны будут присутствовать во всех строках таблицы, равные null, кроме одной. 3. Что делать с изменениями атрибутов? Всего их около 20, неужели добавлять по полю на каждый? Тут важно, что эффектов будет много. Как минимум, больше 200 Добавлено через 1 час 3 минуты callme, дайте свой вариант определения
__________________
В прошлом - AS3 программист, в данный момент пишу на Haxe |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
1. Естественно. Как иначе унифицировать расчет? Ветвить его "если(это фаербол) иначе если(это молния) иначе если(это резист магии) иначе если..." ? Ну ладно развести "на себя" и "на врага", так как они затрагивают разные ветви расчета — не надо ничего менять во врагах, если Способность действует на героя.
2. Визуальные эффекты то здесь при чем? Это не цифры в свойствах персонажа. Не кол-во маны/жизни/стамины, и даже не кол-во патронов)) Это не ДАННЫЕ. На визуальное отображение способности в таблице хранятся ссылки, обычно это два или три класса анимации — анимация героя, исполняющего Способность (напр. метающего фаербол) и анимация воздействия Способности на врага (для исполнения этой анимации требуется факт попадания, то есть удачного применения Способности), возможно еще отдельно анимация между первым фактом и вторым (полет фаербола, молнии, стрелы и тп). "Размытие экрана", или "Тряска" и т.п. должны быть привязаны к первому или второму факту ("попытке" или "попаданию"). Другими словами, это не колонка "Размытие экрана" с единицами и нулями во всех Способностях. Это колонка "анимация попадания" со значением "РазмытиеЭкрана" там где нужно размытие и значением "Горение" там, где враг загорается, и т.д. 3. Уточните о каких атрибутах речь. Свойствах персонажа, типа "прыгучесть", "выносливость", "переносимый вес", "скорость" и тп? Опять же, чтобы унифицировать расчет не грузя его ветвящейся логикой, гораздо проще сделать по полю для каждого из 20 и записывать туда соответствующие бонусы от [удачного] применения. Цитата:
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
В этом причина моей головной боли. Были наброски с выделенными методами, с перехватом, но все это, как мне кажется, не поможет
Размытие - не визуальная составляющая, а сама суть способности. После создания более-менее терпимой версии игры, я собираюсь прикрутить мультиплеер в той или иной форме. Способности, сбивающие врага с толку, нацеливаясь на чисто человеческий фактор очень вписываются в концепт PvP, ИМХО. Данные здесь - флаг, есть ли размытие или нет. Вставлять его в каждую строку ради одной способности - неприятно. А выделиться оригинальностью хочется. Тем не менее, эффектов способностей, которые я имел в виду, предостаточно. Есть те, которые никак не связаны с визуальной составляющей, но по-прежнему связаны лишь с одной из всех способностей в игре. С выбором жанра RPG я, наверное, поторопился, моя игра скорее относится к жанру пошаговой стратегии. Есть 15 классов - одни сразу доступны, другие открываются после в зависимости от предыдущего. У каждого класса есть уникальное дерево способностей 4х7, т. е. всего 432 с учетом двух стартовых способностей для каждого из 6 стартовых классов. Ну и оригинальные скиллы npc, конечно же. Разнообразие скиллов - одна из ключевых фишек, хотя, конечно, новые классы и их деревья я буду добавлять постепенно. Цитата:
И да, если будут какие-то расхождения в представлении игры, можете посмотреть ролики с геймплеем Sonny, это мой основной источник вдохновения) Добавлено через 2 минуты Только не говорите, что я безумец, пожалуйста
__________________
В прошлом - AS3 программист, в данный момент пишу на Haxe |
|
|||||
Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
|
Не будьте так категоричны. Нет ничего невозможного
__________________
В прошлом - AS3 программист, в данный момент пишу на Haxe Последний раз редактировалось Wormhole; 04.02.2017 в 22:49. |
Часовой пояс GMT +4, время: 02:24. |
|
« Предыдущая тема | Следующая тема » |
|
|