#javascript #node.js #discord #discord.js
#javascript #node.js #Discord #discord.js
Вопрос:
Я пытаюсь создать бота, в котором вы вводите команду, и он запускает небольшую мини-игру. Я хочу, чтобы он мог создавать экземпляры нескольких игровых объектов, чтобы несколько человек могли играть одновременно, каждый со своей собственной игрой. Проблема в том, что я не знаю, как создать асинхронный объект с функциями, управляемыми событиями, например, «ветвь» основного клиента. Возможно ли это сделать, или мне пришлось бы обновлять каждый экземпляр игры в основных методах сценария?
Комментарии:
1. Я немного заблудился, но … не существует таких вещей, как «асинхронные объекты». Что бы я сделал в вашем случае, так это просто использовал websockets и обновил соответствующие данные о состоянии на основе взаимодействия клиента с сервером. У вас, вероятно, был бы объект «games», поэтому … от клиента приходит сообщение, сервер обрабатывает его и обновляет состояние игры, наконец отправляет ответ клиенту, клиент обновляет все, что ему нужно обновить … и повторять до выхода. Следует иметь в виду, что узел может не справляться с задачами, требующими больших затрат процессора.
2. Кстати, возможно, я неправильно понял ваш вопрос. Честно говоря, я нашел это действительно запутанным.
Ответ №1:
В JS нет таких вещей, как «асинхронные объекты»: вы можете либо написать пользовательский класс и использовать websocket, либо использовать базу данных и цикл (что я использую, например, поскольку мне легче это реализовать. Вы в основном изменяете каждое состояние вашего игрового объекта после каждого раунда в своей базе данных. Если вы не понимаете, что я имею в виду, я могу отправить вам пример из моего бота
Комментарии:
1. Если бы вы могли прислать мне пример, пожалуйста, сделайте. Я пытаюсь сделать что-то подобное в этом видео . Перейдите в раздел видео «одновременные игры». Я хотел бы знать, как он обновляет каждый игровой объект.
2. @Galarmo в этом каталоге вы можете увидеть, как я это сделал для своего бота. В основном сохраняйте состояние игры как объект JSON и сохраняйте его после каждого хода. Это также имеет то преимущество, что пользователи могут вернуться позже, чтобы продолжить