2016-11-29 4 views
0

Ist es möglich, ein virtuelles Bildschirm-Dpad in einer Kivy App zu erstellen? Ich sehe das nicht als möglich, weil das Fenster nur ein Berührungsereignis zu einem Zeitpunkt akzeptiert, so wie es scheint, so dass es kein Weg gibt, ein Dpad mit zwei Aktionsschaltflächen zu haben (mit Bildern auf der Leinwand, nicht tatsächlichen Schaltflächenwidgets).Kivy - Erstellen eines virtuellen Dpad

Ich dachte sogar darüber nach, ein Etikett zu haben, das den Touch für das Dpad akzeptiert, aber das tatsächliche Bild des Dpad über das Etikett zu zeichnen, würde dazu führen, dass das Etikett keine Berührungen (Raten) erhält.

Ich dachte dann über das Erstellen eines kleineren Fensters in der Ecke, die möglicherweise seine eigenen Berührungen registrieren, aber ich habe nichts in den Kivy-Dokumenten über das Erstellen eines Fensters mit dem Hauptfenster zu sehen.

+0

Was ist, wenn ich eine Berührung ergreife? Ist es möglich, mehrere Berührungen gleichzeitig zu verarbeiten? – chitondihk

+0

Ja, Sie können dies tun. Kivy kann im Prinzip eine beliebige Anzahl von simultanen Berührungen verarbeiten (begrenzt durch Hardware, bevor Softwareprobleme auftreten) - Sie müssen nichts Besonderes tun, die Touch-API passiert nur Berührungen, wenn sie empfangen wird. – inclement

+0

Das Problem ist, halten Sie Ihren Daumen auf dem Dpad, während Sie Ihren anderen Daumen verwenden, um andere Tasten zu drücken. Die Berührung, die Sie auf dem Dpad erstellt haben, scheint durch andere Berührungen unterbrochen zu werden. – chitondihk

Antwort

-1

Gelöst es. Das Problem war nicht mein Code, keine Überraschung, Programmierung seit Jahren. Logik ist der einfache Teil. Meine Probleme treten auf, weil das API-Set nicht verstanden wird. Es ist, als ob man mit einer Handsäge in einem Geräteschuppen sitzt, um Holz zu schneiden, ohne zu wissen, dass in der Ecke eine motorbetriebene Kettensäge steht, die mit Holzbrettern verkleidet ist.

Ich wusste nicht, dass es einen Weg gab, eine Berührung zu 'id' machen und sie dadurch trennen. Jetzt, wo ich eine Berührung von der nächsten identifizieren kann, sieht alles gut aus. Ich muss nur an meinem "Dpad" arbeiten, bis es flüssig genug ist. Dieser Teil ist nicht so einfach, weil du die richtige Position des Dpad auf dem Bildschirm haben möchtest und du nur sehr wenig Bewegung brauchst, um die Richtung zu ändern ... oder der Daumen eines Spielers wird über den ganzen Bildschirm gleiten, lol. Mit meiner Erfahrung fühle ich, dass ich es früh genug perfektionieren werde.

Kivy ist schwierig, Punkt. Mir ist aufgefallen, dass wenn Sie nicht jedes Mal einen ID-Wert zuweisen, die ID selbst nicht existieren wird (aber das tut es!) Und das wird eine Ausnahme auslösen. Das ist komisch, weil Sie ein Attribut verwenden, das bereits in Berührung ist. Warum also nicht "None" für eine nicht zugewiesene Eigenschaft zurückgeben?

Naja, zumindest kann ich aufhören, dieses Seil um meinen Hals zu rutschen. : D

+0

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

Verwandte Themen