Kivy - Создание виртуального Dpad

Можно ли создать виртуальный экранный Dpad в приложении KIVY? Я не думаю, что это возможно, потому что окно принимает только одно сенсорное событие за один раз, так что нет никакого способа иметь Dpad вместе с двумя кнопками действий (используя изображения на холсте, а не фактические виджеты кнопок).

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

Затем я подумал о создании меньшего окна в углу, которое могло бы зарегистрировать свои собственные прикосновения, но я не видел ничего в документах kivy о создании окна в главном окне.

1 ответ

Решение

Решил это. Проблема была не в моем коде, это не удивительно, я программировал годами. Придумать логику - самая легкая часть. Мои проблемы возникают из-за недостаточного понимания используемого набора API. Это все равно что находиться в сарае для инструментов, используя ручную пилу для резки дерева, не зная, что в углу есть электрическая цепная пила, покрытая деревянными досками.

Я не знал, что есть способ идентифицировать прикосновение, таким образом, отделяя их. Теперь, когда я могу отличить одно прикосновение от следующего, все выглядит хорошо. Мне просто нужно поработать над моим "Dpad", пока он не станет достаточно беглым. Эта часть не так проста, потому что вам нужно правильное положение Dpad на экране, и вам нужно очень мало движения, чтобы изменить направление... или большой палец игрока будет скользить по всему экрану, смеется. С моим опытом, я чувствую, что скоро достигну совершенства.

Киви хитрый, точка. Я заметил, что если вы не назначаете значение id для прикосновения каждый раз, сам идентификатор не будет существовать (но он есть!), И это вызовет исключение. Это странно, потому что вы используете атрибут, который уже существует в пределах касания, так почему бы не вернуть вместо него None для неназначенного?

О, хорошо, по крайней мере, я могу перестать надевать эту веревку на шею.:D

Другие вопросы по тегам