Основная проблема заключается в том, что вы можете перемещаться по направлениям x и y одновременно с отключением по одному типу ошибок с некоторым обнаружением. Поэтому, когда вы находитесь на одном пикселе ниже нижней части верхнего квадрата, он фактически обнаруживает столкновение в направлении y с этим квадратом и только останавливает y от перемещения, но позволяет перемещение x.
Ниже приведено изменение, которое не допускает столкновений, хотя оно «застревает» в местах:
function fieldUpdate() {
Field.clear();
var oldX = myAvatar.x;
var oldY = myAvatar.y;
if (Field.keys && Field.keys[37]) {
myAvatar.x--;
}
if (Field.keys && Field.keys[39]) {
myAvatar.x++;
}
if (collision(myAvatar)) {
myAvatar.x = oldX;
myAvatar.y = oldY;
}
var oldX = myAvatar.x;
var oldY = myAvatar.y;
if (Field.keys && Field.keys[40]) {
myAvatar.y++;
}
if (Field.keys && Field.keys[38]) {
myAvatar.y--;
}
if (collision(myAvatar)) {
myAvatar.x = oldX;
myAvatar.y = oldY;
}
myAvatar.componentUpdate();
for (var prop in components) {
components[prop].componentUpdate();
}
}
Если вы исправили ошибку на 1, это также не должно застрял.
Еще одна проблема заключается в том, что у вас есть c.y - c.width
в нескольких местах. Вероятно, это возможно c.y - c.height
. Это будет проблемой, если вы когда-либо делаете не квадратные фигуры.
Другой вопрос: как я могу поместить свою программу (написанную на python с использованием ros) на дрон?
blockquote>Я предполагаю, что вы имеете в виду управление дроном с помощью вашей программы ROS без симулятора?
Необходимо подключить беспилотник к ПК с помощью порта UART на M100. Моя настройка включает в себя кабель USB-последовательный, который подключен к JETSON TX1. Если вы используете ROS, отредактируйте детали
sdk.launch
здесь . Ваш компьютер должен быть достаточно маленьким, чтобы поместиться на дроне. Малиновый пи сделает свое дело. Для получения более подробной информации обратитесь к руководству по установке оборудования по этой ссылке . Я думаю, что машина M100 + PC / Linux должна хорошо работать для вас. Удачи.
Привет , Вы открыли DJI Assistant 2? Вы можете подключить свой дрон к ПК ,, затем открыть симулятор DJI Assistant 2. В симуляторе вы можете установить широту и долготу. После запуска симуляции GPS сигнал будет высоким всегда.
Возможно, вы сможете запустить и загрузить пример мобильного приложения (для Android или iOS) SDK, чтобы запустить оттуда симулятор и затем запустить нужные команды из встроенного sdk / onboard sdk для тестирования. Я не уверен, что это сработает, так как неясно, если
обе симуляции
2.) Будет проблемой DJI, и я не тестировал 2 симуляции одновременно. Я думаю, если вы не можете запустить 2, но это может стоить попробовать. 1.) зависит больше от того, что вы пытаетесь достичь. Но я мог бы что-то упустить и не иметь опыта пробовать несколько симуляций, если это то, что вам нужно.