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

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

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

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
По умолчанию Хранение справочных данных

Друзья, поделитесь, пожалуйста, опытом.

По мере продвижения в деле написания игры программа всё больше обрастает всякими "статичными" справочными данными: параметры предметов, игровых действий, статус-эффектов и ещё много чего. Возник вопрос, как хранить всё это безобразие.

Пока у меня создан отдельный пакет collections, в котором я создаю классы-хранители, например AllItemProps. В нём созданы публичные константы типа Dictionary, по одному на каждое поле класса Item. В них записаны значения, ключами доступа к которым служат строковые ID предметов, т.е.:

Код AS3:
public class AllItemProps
{
public static const PRICES: Dictionary = new Dictionary; PRICES[ItemIDs.SMALL_HEALING_POTION] = 20; PRICES[ItemIDs.MED_HEALING_POTION] = 30;
}
В конструкторе класса Item записан запуск protected-метода setInitialProps(), который обращается к справочнику и заполняет поля вот таким образом:

Код AS3:
if (AllItemProps.PRICES[_id]) _price = AllItemProps.PRICES[_id])
для наследников, у которых есть поля, отсутствующие в супере, данный метод переопределяется и "выдёргивает" дополнительные записи из справочников.

В принципе, всё работает, но есть ряд проблем, которые становятся тем заметнее, чем крупнее становится проект. Главная - это неудобство администрирования. Если нужно что-то подкорректировать, я вынужден лезть в эти классы, проматывать много строк текста и вводить вручную новые значения. И это я ещё не дошёл до балансировки! Наверное, свихнусь.

В общем, вопросов два. Первый, где принято хранить подобные вещи? Считается, что им не место в коде. С другой - они не предназначены для внешней редактуры и должны оставаться "под капотом".
Второй - как это правильнее делать? Возможно, кто-то покажет уже готовые наработки или поделится советом. Например, у меня сейчас приятель участвует в разработке некого приложения (не как программист), так ему разработчики сделали табличный документ в Гугле, где он вписывает текста в ячейки, из которых приложение их вытаскивает и использует в работе.

P.S. XML для подобных целей мне не понравился. Тот же гемор с ручным вводом циферок в теги.
__________________
Не сломано - не чини!

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

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

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


 


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


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