Показать сообщение отдельно
Старый 17.05.2018, 17:35
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 14  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Цитата:
Сообщение от Appleman Посмотреть сообщение
.. сразу же открываю класс IDs и вписываю туда статическую константу
Код AS3:
static public const PROP_STRENGTH: String = "strength"
Всё. Теперь где бы мне ни потребовалось передать обращение (подчёркиваю, не обратиться, а именно передать необходимость обращения) к свойству силы, я знаю как это сделать.
В принципе, это норм, только класс я бы назвал CharacterProperty и значения использовал не строковые, а целочисленные. (Int, Uint). Строки - жирные и тормознутые.

Цитата:
Сообщение от Appleman Посмотреть сообщение
Например, я записываю таблицу условий на выполнение действия или использования предмета в вектор:
Код AS3:
_activeConds.push(new ACRange(IDs.PROP_STRENGTH, 15)); //Наследник класса проверки условий
Вот это фигня какая-то, я бы сделал по другому, описал 2 таблички - "Условия" и "Действия". Допустим, в игре есть используемые предметы, тогда, сущность "Предмет" будет выглядеть так:
Код:
class Item {
    var id:Uint; // ID Предмета
    var useCondition:Uint; // ID Условия, которое должно выполняться для использования предмета
    var useAction:Uint; // ID Выполняемого действия.
}
class Condition {
    var id:Uint;
    var minStrength:Number;
}
class Action {
    var id:Uint;
    var type:Uint; // Тип действия. (ActionType)
    var strength:Number;
    var agility:Number;
}
class ActionType {
    static const ADD:Uint = 1; // Добавить.
    static const MUL:Uint = 2; // Умножить.
    static const SET:Uint = 3; // Установить.
}
Обрати внимание, как сущности связаны между собою, я это хочу донести. Один предмет может ссылаться на одно и то-же действие, например. (Предметы id=2, id=3 могут иметь общее условие condition=8)
Или так:
Код:
class Item {
    var id:Uint; // ID Предмета
    var use; // ID Использоания.
}
class Use {
    var id:Uint; // ID Применения.
    var condition:Uint; // ID Условия, которое должно выполняться для этого использования.
    var action:Uint; // ID Выполняемого действия.
}
Сперва нужно разобраться со структурой данных и связями между ними. Все связи должны быть так-же выражены в отдельных таблицах (Class), а не разбросаны по коду в виде иерархий наследования или огромных стеков из if.

пс. Больше я не буду предлагать решение для задачи, которую не знаю целиком.
__________________
Дети не должны знать о своих родителях


Последний раз редактировалось Tails; 17.05.2018 в 18:00.