Имитация удаленного движения робота
Я работаю над заданием, которое дал мой преподаватель, где он показал мне демонстрационный проект, разработанный с использованием Java, но у меня нет никакого опыта в Java, но у меня мало опыта в C#, и я должен выполнить данное требование, такое как
- Использование сокетов
- Протокол связи клиент / сервер
Сценарий: необходимо создать мир роботов с неизвестными объектами, которые робот собирается исследовать. так что я знаю, что это будет своего рода анимация, такая как 2d игры, где я могу разрабатывать с использованием Microsoft XNA и разрабатывать интерфейс дистанционного управления с C# и передавать значение параметра с помощью технологии System.Net.Sockets для перемещения робота.
Примечание: я знаю, что есть ограничения при использовании System.Net.Sockets в Xbox, но этот проект будет использоваться только на ПК.
Мой вопрос: есть ли у кого-нибудь идея или комментарий по поводу моего назначения, возможно ли это или нет. Если это возможно, пожалуйста, направьте меня с руководством. Если это невозможно, пожалуйста, ознакомьте меня с технологией, где я могу выполнить свое задание, например, с другой средой программирования или инструментом????
1 ответ
Возможно.
Я бы предложил разбить проблему на несколько отдельных частей.
Симуляция - это чисто симуляция положения робота и окружающей его среды. С этой задачей полностью игнорируйте все, что связано с графикой. Сосредоточьтесь только на математике. Например, если мой робот здесь и там есть камень, то касается ли мой робот камня? Поскольку это 2D-приложение, вы можете избежать множества предположений и упрощений. Например, робот и камни могут быть смоделированы с помощью квадратов или кругов.
(С кругами особенно легко иметь дело, поскольку в основном это просто проверка того, что расстояние между центром робота и центром скалы достаточно велико.)
Сеть - создайте два простых консольных приложения и заставьте их общаться через API сокетов. Как только вы это заработаете, интеграция в игру XNA станет более очевидной.
Пользовательский интерфейс - это то, где вы можете (наконец) сосредоточиться на графике и пользовательском вводе. Похоже, что этого можно добиться с помощью обычных вызовов рисования Spritebatch и методов чтения ввода (таких как клавиатура, мышь или GamePad).