![]() |
Визард на входе - это квест?
Собственно, делаю входного обучающего визарда для приложения (ну, это когда чучело при первой загрузке вылазит "здравствуй, дорогой друг, нажми на эту пимпочку, чтобы завертелась каруселька, а теперь вот на эту кнопочку..." и потом изредка уже по событиям - "поздравляю, ты собрал свои первые денежки, положи их вот в этот ящичек...").
Поймал себя на мысли, что фактически это квест. Т.е., лучше сразу писать класс квеста (с механизмом контроля событий, которые должны произойти), а потом уже на основе его вылепить обучающего визарда. Кто как этих обучающих визардов делает? |
Приходилось делать на не больших играх его только, поэтому хватало одного мувика, лежащего поверх всего, которого ставил на нужный кадр. Добавлял после того, как всё написано - так что синглтоном, за это меня можно бить по рукам =) Хотя, проект уже написан и расширению не подлежал - почему нет?..
|
Уже слепил квестом )))
Расписал ожидаемые игровые события и реакцию на них в зависимости от состояния/этапа квеста. Немного запахло конечными автоматами, но в меру. ) Получилось, что каждый новый пользователь получает на входе стартовый квест, который должен пройти. Посмотрю теперь, как все это отработает на реальных пользователях... |
mikhailk, а как вы стрелочки привязваете к объектам? Ну т. е. примерно так "тыкни на эту кнопку", стрелочка, указывающая на кнопку.
|
примерно так (это описание одного шага)
Код AS3:
|
Я еще встретился с проблемой, когда идет "откат" на шаг назад. Например - есть выпадающий список. Сначала стрелка должна показать на этот список, потом на элемент в нем.
Если вдруг игрок не нажал нужный элемент, и меню закрылось, то стрелка должна снова вернуться в состояние "показать на кнопку открывающую меню". В результате я запутался с событиями вьюверов. Когда именно они должны переключать состояния. Как вы такого рода конфликты решаете, можно поинтересоваться? Еще одна проблема - скрыть/показать элементы интерфейса в зависимости от состояния тутора. Чтобы описать это в общем, надо давать какие-то глобальные id вьюверам, чтобы в xml квестов прописать что-нибудь типа <hideElems>id1,id2,...</hideElems>. Но я эту задачу в общем так и не поборол... PS. На пользователях любой туториал работает более, чем хорошо :) |
mikhailk, поделитесь реализацией, интересно взглянуть.
|
Механизм в бета-тестировании, ногами не пинать ))
Код AS3:
Код AS3:
При загрузке приложения, смотрим, нет ли у пользователя активного квеста и на каком шаге. Если есть - порождаем объект класса AppQuester. В необходимых точках приложения, вызываем метод checkEvent, который проверяет, не ожидает ли квест этого события. |
Понятно, спасибо. Ещё бы взглянуть в действии :)
И да, типизация явно хромает. |
про типизацию - это да ))
не могу себя заставить, а IDE не требует. Кстати, специально не занимался, но какой тип правильнее установить для переменной questStep? Что касается наблюдения в действии - этот квестер стоит на входе в товарняке (ВК). Сейчас, правда, приложение не работает, там что-то с сервером. При создании профиля юзеру назначается квест "startQuest|0" и вперед. |
| Часовой пояс GMT +4, время: 03:39. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.