2015-04-12 3 views
0

Я пытаюсь изучить App Inventor 2, реализуя учебники и переделывая некоторые по-другому. В настоящее время я пытаюсь сделать компас похожим на this, но вместо классического вращающегося диска я хочу иметь линейный дисплей, что-то вроде this.Как сделать линейный компас в App Inventor 2

Следует ли, чтобы кодовые блоки, используемые во вращающемся компасе, были изменены таким образом, чтобы иметь линейный компас? Простое изменение отображаемого изображения не работает.

настоящее время я использую этот блок комбинации:

«когда OrientationSensor1.OrientationChanged сделать набор Compass.Heading получить азимут +180 (чтобы получить N всегда)»

Может кто-то дать мне ключ о том, как реализовать рабочий линейный компас в приложении Inventor 2, если это возможно? Спасибо всем за ваши ответы.

ответ

1

Вы можете сделать это самостоятельно, используя холст.

Проверьте этот пример, как сделать это, она рисует знак Север только, но вы можете продлить его легко нарисовать все другие знаки ...

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

Удачи. HorizontalCompass blocks

+0

Hello @MirecXP. Честно говоря, не ожидал, что кто-то ответит на этот пост, поэтому я благодарю вас. Между тем, я реализовал цифровую версию компаса, называя кардиналы (N, S, E, W) в текстовой метке. Рад, что вы ответили, поэтому я могу следить за вашим подходом, чтобы сделать свое приложение. Я уже воссоздал ваши предложенные блоки, и «N» подходит как письмо в холсте. Вы не указали свой подход к проектированию, я использовал холст и ярлык за пределами холста. Мне нужно было иметь графику с кардиналами, чтобы двигаться в соответствии с направлением (см. Это в моем вопросе). так как это можно сделать на холсте? – user3244633

+0

Нарисуйте кардиналы так же, как текст внутри холста. Вам нужны только холст и объекты датчика ориентации в конструктивной части. – MirecXP

+0

Чтобы использовать некоторую кардинальную графику вместо простого текста, вы можете вставить спрайты изображения в холст и вызвать spriteN.MoveTo (x, y) в процедуре drawCompass, использовать некоторую фиксированную y и рассчитанную позицию для справки x спрайта. Но он не будет отображаться частично, если он будет близок к краю, но он останется всегда полностью видимым. Чтобы он был нарисован точно на краю, вы можете немного уменьшить площадь рисования компаса. – MirecXP

 Смежные вопросы

  • Нет связанных вопросов^_^