Как запрограммировать систему сценариев событий / ролевой игры в RPG в RPG на основе тайлов в задаче C? - PullRequest
6 голосов
/ 15 марта 2011

Для фона я работал над RPG, основанной на уроках Рэя Вендерлиха.(Пример) http://www.raywenderlich.com/1163/how-to-make-a-tile-based-game-with-cocos2d.

Теперь я пытаюсь создать сценарий / систему сцен сцены, чтобы, например, когда игрок входит в здание, разные персонажи могли обсудить текущие события перед продолжениемприключение.Моя единственная проблема в том, что я не могу представить, как можно это реализовать.

Я бы предположил какой-то одноразовый триггер, может быть, где-то в большом операторе switch для синглтона?Который, возможно, рисует всех временных персонажей?Затем событие деактивируется.

Я просто ищу схему того, как можно это сделать.Хотя примеры программирования тоже приветствуются.

Ответы [ 2 ]

3 голосов
/ 15 марта 2011

Это во многом зависит от того, сколько времени вы хотите выделить для системы и насколько универсальной должна быть конечная система. Мощная система кат-сцены может быть достаточно гибкой, чтобы ее можно было использовать практически в любом взаимодействии в типичной 2d RPG.

Если вы хотите сделать все возможное, я бы предложил подход с большим объемом данных. Храните как можно больше данных в файлах и используйте файловую систему в своих интересах. Если вы говорите «все сцены диалога находятся в этой папке», то при добавлении новой сцены ее просто нужно поместить в папку, а не создавать сцену, а затем коснуться какого-либо главного переключателя. Просто помните о большой системе, которую вы хотите сделать добавлением новой катсцены настолько простой, насколько это возможно, а не 400 разных мест для прикосновения.

Я бы также держался подальше от операторов switch для отслеживания прогресса в кат-сцене. Это добавляет много накладных расходов кода для каждой сцены. Просто ролик был бы простым, как массив данных и позиция. Менеджер катсцены, singleton, может анализировать массив, декодировать данные в команды и запускать их.

Извините, если это слишком расплывчато, но многие из этих решений зависят от того, как устроен ваш движок и что вы хотите от системы. Имейте в виду, что чем более универсальна система, тем больше вы можете использовать ее для дальнейшего развития, но для начала потребуется больше времени для запуска.

1 голос
/ 15 марта 2011

вы можете просто проверить плитку, на которой вы находитесь, во время движения, а когда вы находитесь на определенной плитке, вы можете запустить кат-сцену, также вы можете добавить тег через TiledEditor (это рекомендуемый редактор для использования с CCTMXTiledMap) к вашей карте, чтобы указать, где должен начинаться ролик, точно так же, как он указал начальную точку персонажа в этом уроке.вы проверяете наличие указанного триггера (либо конкретной плитки, либо точки, обозначенной на карте) в каждом игровом цикле.и тогда почти очень легко просто заморозить элементы управления и воспроизводить предварительно записанные движения камеры и объекта, пока не закончится кат-сцена.восстановить игру в обычном режиме и отключить проверку триггера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...