Если у меня есть текстовая игра, в которой есть объект мира, у которого есть объекты типа room, в которых есть объекты предметов и врагов, а затем объект gamehelper, у которого есть пользовательские объекты для реального игрока. (в этой игре нет блуждающих врагов, так как это усложнит мой вопрос для меня :-))Как я могу управлять этой текстовой игрой и как бы классы получили лучшую структуру для этого?
Как я могу либо убить врага, либо поднять объект? Или я должен думать о другом способе, когда полностью структурирую свои классы? У меня появилось предположение, что мне нужен менеджер, который контролирует мир и посредничает между пользователями и объектами, но я не могу определить , как бы это выглядело/работало.
Я бы также реализовал интерфейсы, которые можно было бы убивать и подбирать для разделения объектов друг от друга, если это необходимо, если это имеет значение ... И я изучаю Java, чтобы в этом мог быть написан любой примерный код, который может быть полезен для понимания.
Ie:
World
|
____Rooms____ (could be like a 4x4 array or something with X and Y cords)
| |
Objects Enemies (Either killable/pickupable)
Game
|
User (can walk around in rooms, kill monsters and take treasure)
О, да, это диаграмма, где они не являются диаграммой классов :) Но да, это довольно хорошее описание того, что им нужно выполнить. Я не могу окунуться в голову, как фактически контролировать игру. Должен ли элемент управления иметь цикл while (true), который принимает команды, а затем, если команда убивает монстерон, где он должен начинать работу? Посмотрите на комнату для монтеронного объекта и затем отправьте сообщение kill() объекту или он должен отправить сообщение атаке пользователя (монстра)? –
Я предполагаю, что первый вопрос заключается в том, является ли игра однопользовательской или многопользовательской, пошаговой или в режиме реального времени.Если это однопользовательская пошаговая игра, вам не нужно проводить опрос для команд, вы можете просто запускать их с входа, который вы получаете. В противном случае, вероятно, нужен цикл опроса. Что происходит, когда команда 'kill' обрабатывается снова, зависит от вашей игровой модели (продолжается ли боевой старт или враг просто умирает?), Но я хотел бы пойти с опцией User :: attack (монстр). – chaos
Возможно, вам захочется взглянуть на то, как некоторые подобные, установленные кодовые базы, такие как http://dead-souls.net/, делают это. – chaos