![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2009
Сообщений: 56
|
В принципе мне все стало намного яснее.Спасибо большое за ответы всем.C одной стороны конечно неплохо все запихнуть в один xml файл вручную.В этом есть много плюсов.Например такой xml файл может заполнять кто угодно, например, администратор игры.можно добавлять новые квесты не влезая в БД.Но есть и минус.Если квестов будет больше 100 , то объем такого файла будет почти мегабайт.И каждый раз при загрузке приложения он будет его скачивать.
С Базой данных тоже не все так просто.Во первых за каждый пройденный квест он будет записывать в БД и ждать ответа от сервера.Во вторых нужно сразу заполнять БД для того чтобы потом в нее не лазеть.Но есть плюсы - это экономия времени при загрузке приложения и гарантия того что этот файл никто не посмотрит. Т.е. получается затык только в том , что квесты нужно передавать в разных форматах.Но эту проблемму решает JSON.Как написал Dukobpa3 можно хранить данные в базе в виде JSONа и парсить его в зависимости от заголовка которые будет в ответе от сервера. В общем с одной стороны с xml все просто но не продуктивно .С другой стороны с БД все сложно но быстрее и безопаснее.Может быть надо выбрать тот способ которые гибче остальных?Вдруг что то придется добавлять или изменять Последний раз редактировалось markII; 02.11.2011 в 18:55. |
|
|||||
|
"Лучше потому что лучше" - имхо, не аргумент. С таким же успехом можно джейсон файлики на диске складировать и результат будет тем же.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Я не говорил "Лучше потому что лучше", а подробно сказал почему лучше.
Джейсон описание уровня - каша-мала. Хуже читается - значит и сам подход хуже. |
|
|||||
|
Я до сих пор не увидел ни одного аргумента к сожалению. Все твои доводы субъективны. Для меня наоборот джейсон удобнее и проще читается, в то время как хмл избыточен и содержит великое множество шума.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Квесты будут секретные только если их никому не будут выдавать)
Писать в базу каждый пройденный квест придётся в любом случае. Вам нужно как можно быстрее узнавать, в каком состоянии квест. Быстрее всего - программа-сервер, постоянно висящяя в памяти, которая знает всё о квестах и игроках онлайн. Быстрее всего, т.к. всё о чем надо знает и делает только то, что надо, заточена конкретно под ваши квесты. Только её написать тяжело, не советую вообще. Потом идёт БД. Потому что по сути у вас в любом случае будет БД, только в случае текстовых форматов вам надо будет предварительно её ещё и распарсить. Ну и информацию об игроке в любом случае из БД доставать, а так есть шанс, что на вопрос "что там у такого-то игрока с квестами" можно будет ответить одним запросом. Утилитку для редактирования квестов написать не сложно. БД не должна быть для вас сложной, это базовая вещь вообще, не бойтесь её. Индексов главное налепить побольше =))
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
У меня не так. Парсер лишний, только если хотите спихнуть работу на какого-нибудь другого человека )
У меня квесты выглядат так: item = new TutorialItem(); item.position = new Point(100, 100); item.header = "Купи себе значок!"; item.text = "Пионер без значка - как икра без кабачка!\nСкорее отправляйся в МАГАЗИН."; item.unblockedSquares.push(new Rectangle(686, 80, 90, 80)); item.awaitingClickOnName = RightMenu.SHOP_BUTTON_NAME; item.callbackWhenTrigger = tutorial1_waitingShopClickTrigger; item.arrowAt = [665, 115, -90]; super.push(item); Если ожидается не клик, а ответ от сервера - я делаю диспатч баббл эвента, с номером туториала и номером шага. Если туториал сидит на этой точке - то считается, что пункт пройден. Ну, и много всякой ерунды ещё. Блокирую экран Sprite`ом, в котором режу дырки ) callbackWhenTrigger позволяет выполнить код, когда доходит до этого шага - там предоставляется необходимый функционал, вроде viewport.addOnTop у меня подсвечивает объект над областями затемнения. Так же там имеется доступ к главному контроллеру и я в принципе могу приказать что угодно кому угодно.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Когда юзер доходит до этого TutorialItem (50 шагов - 50 TutorialItem`ов) - вызывается этот метод, если он указан.
В нём, например, можно сделать запрос на сервер, или приказать какому-нибудь окошку закрыться.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
А где сами ссылки на коллбеки хранятся?
В итеме понятно. А до вот этой строчки: Откуда берется значение "tutorial1_waitingShopClickTrigger"? Какая-то хитрая схема с формированием имени колбека и в таком духе? или хардкод, или где-то в каком-то списке хранится?
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 56
|
Цитата:
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:43. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|