2016-11-29 3 views
0

Возможно ли создать виртуальный экранный Dpad в приложении kivy? Я не вижу в этом возможности, потому что окно принимает только одно событие касания в то время, когда кажется, поэтому нет возможности иметь Dpad вместе с двумя кнопками действий (используя изображения на холсте, а не на виджетах кнопок).Kivy - Создание виртуального Dpad

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

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

+0

А что, если я возьму прикосновение? Можно ли затем обрабатывать несколько касаний одновременно? – chitondihk

+0

Да, вы можете это сделать. Kivy может обрабатывать практически любое количество одновременных касаний (ограниченное оборудованием задолго до каких-либо проблем с программным обеспечением) - вам не нужно делать ничего особенного для этого, сенсорный api просто передает штрихи, когда он их получает. – inclement

+0

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

ответ

-1

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

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

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

О, ну, по крайней мере, я могу остановить проскальзывание этой веревки вокруг шеи. : D

+0

https://kivy.org/docs/api-yiv.input.motionevent.html – Tshirtman

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