Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.02.2018, 10:17
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 11  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Как-то не айс, когда значения для объекта расситываются в классе, который к нему никакого отношения не имеет. Это создает дополнительную связанность, которая тут ни к чему. Присоединяюсь к ораторам выше) Плюсую за наследование
На самом деле наследуется. То есть метод override-ится в наследниках, но в каждом - отсылка на свой вариант расчёта. Всё понял, отстал. Оставлю пока как временную отладочную фишку, потом внесу в тело класса, когда будет рабочий вариант.
__________________
Не сломано - не чини!

Старый 02.02.2018, 19:53
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 12  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
То есть там и перезапись и в каждом перезаписанно еще и вызов статического? Это конечно вообще дичь, как по мне) Лучше действительно прямо в этих методах написать рассчет.
п.с. А можно глянуть что там за расчет?
__________________
Ко мне можно и нужно обращаться на ты)

Старый 02.02.2018, 19:58
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 13  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
Есть расчет жизней в методе, относительно выносливости персонажа. Расчет применяется в инвентаря и в бое. Смысл наследовать класс, в котором прописан этот метод и инвентарю, и бою? Почему бы его не сделать статичным?

Старый 05.02.2018, 14:55
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 14  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
Цитата:
Сообщение от caseyryan Посмотреть сообщение
То есть там и перезапись и в каждом перезаписанно еще и вызов статического? Это конечно вообще дичь, как по мне) Лучше действительно прямо в этих методах написать рассчет.
п.с. А можно глянуть что там за расчет?
Да нечего там особенно смотреть. Если совсем минималистично, то выглядит примерно так (сорри если отступы не получатся, писал прямо здесь):

Код AS3:
public class Hero extends Character
{
   override public function get attackRating()
   {
      return AttackRating.calculate(this);
   }
}
 
public class AttackRating
{
static private const POW: uint = 3; // степень
static private const BASE: Nubmer = 1.5; // база расчёта
 
static public function calculate(ch: Character) : Number
{
   // Всякие расчёты
   return result;
}
Я думаю, что вопрос закрыт. Позицию сообщества я понял.

Добавлено через 27 часов 7 минут
Ребята! Давайте забудем про статические классы, с ними всё понятно. Я тут пока обдумывал ситуацию, мне такая крамольная мысль в голову пришла. А верно ли я вообще втыкаю приведённый выше расчёт в наследника класса Character. Что Вы думаете с точки зрения философии ООП, принципа одной ответственности класса и т.п.?

Смотрите. Сейчас у меня метод execute() класса Action ломится в наследника Character за показателем attackRating, который рассчитывается на основе свойств персонажа, хранящихся в Character. Корректно ли в данном случае помещать подобный метод в Character? Или правильнее запросить из Character значения необходимых свойств, и посчитать непосредственно в классе Action, создав там отдельный приватный метод?
__________________
Не сломано - не чини!

Старый 06.02.2018, 18:17
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 15  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Правильно было бы иметь какой-то XML со всеми св-вами, грузить его в какую-то модель и таким образом вынести в нее подсчет результата тех или иных событий: кто-то поднял аптечку — насколько поправилось здоровье, кто-то треснулся в препятствие — насколько покалечился, кто-то с кем-то обменялся ударами — чо-там-кто-кого. Это еще более-менее норм было бы.
__________________
Поймай яблоко 2!

Старый 07.02.2018, 00:41
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 16  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Что Вы думаете
Я думаю, тебя понесло в какие-то немыслимые дебри.
Изначально ты говорил, что этот пресловутый метод — всего-лишь геттер свойства Характера.
Не имеет никакого значения, насколько сложно там это свойство вычисляется: тем, кто обращается за ним к персонажу, нужно всего-лишь получить значение этого свойства. Почему расчет должен происходить где-то еще, совершенно не понятно. Тогда вообще не надо обращаться к персонажу, а сразу идти к сионским мудрецам AttackRating.calculate(_hero); Но если это свойство ПЕРСОНАЖА, присущее ЕМУ, то немозголомно было бы _hero.attackRating;
Не? Почему ты считаешь, что его свойство — это не его ответственность?
Цитата:
Или правильнее запросить из Character значения необходимых свойств, и посчитать непосредственно в классе Action
Если это не свойство, присущее Характеру, а какая-то переменная величина для дальнейших расчетов, необходимая только локально в функции, то можно.
__________________
Reality.getBounds(this);

Старый 07.02.2018, 12:54
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 17  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Я думаю, тебя понесло в какие-то немыслимые дебри.
Вот это точно! Как с письмом от руки, когда напишешь сразу правильно, а потом задумаешься, и начинаешь переписывать с ошибками Всем откликнувшимся спасибо. Всё разложил по полочкам.
__________________
Не сломано - не чини!

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:10.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.