sparrow hat geschrieben: ↑Samstag 18. September 2021, 19:24
@rob87: Deine Codebeispiele und deine Erklärung helfen leider nicht zu verstehen, was du eigentlich machen möchtest.
Vielleicht Ist daher das, was du für die Lösung hälst, eigentlich nicht korrekt und du solltest mal das grundlegende Problem beschreiben.
Naja wie ich Eingang schon geschrieben habe bekommen ich
ID und
Value als aktuellen Zustand eines
Xbox Controllers über Bluetooth (
events).
Jetzt will ich im weiteren Programm aber nicht mit der
ID aus einer List oder einem dict Arbeiten sondern mit Objektvariablen arbeiten.
So, der Controller hat
2 Sticks/Knüppel oder wie auch immer man es nennen möchte. Jeder
Stick hat
2 (Stick)achsen (Horizintale Richtung - X /Vertikale Richtung - Y) und
einen Button.
Diese Stickachse wird in
3 Bereiche unterteilt: Links mit mitte (
B1000), Links bis rechts(
B100100) und Mitte bis rechts (
B0100)
Wenn ich also wissen will zu wie viel Prozent des
Linken
Sticks der Auschlag in
X Richtung auf der
rechten Seite ist, frage ich im Programm die Variable
Controller.LS.X.B0100 ab.
Auch muss ich der Umrechnungsfunktion den Eventwert zuschieben.
Wenn das Programm anhand der ID erkennt (if /elif -Funktion), ah der Eventinput kommt von der
X Achse
Linker Stick also rufe ich folgende Funktion auf:
Controller.LS.X.input(Eventvalue) -> Diese Funktion berechnet nun die Stellung in einem Bereich von -1.0(ganz links) und 1.0(ganz rechts) und beschreibt die drei Variablen B1000; B100100; B0100 entsprechend.
@rogerb du hast recht, ich habe die Klammern vergessen.
Ich weiß halt nur nicht wie ich die Variable innerhalb einer Klassen definieren muss damit sie A: von außen zugreifbar sind und B: Beim initialisieren der Instanz einmalig auf 0.0 gesetzt werden?
Ich versuche es mal platischer (aber vermutlich noch falsch)
Code: Alles auswählen
class Finger():
daumen #Variable anlegen
def __init__(self):
self.daumen = "Gerade"
def kruemmen(self)
self.daumen = "Krumm"
def strecken(self)
self.daumen = "Gerade"
#weitere Fingerdefinition gespart
class Hand()
rechts= Finger()
links = Finger()
def main()
haende = Hand()
print(hand.rechts.daumen)
hand.rechts.kruemmen()
print(hand.rechts.daumen)
print(hand.links.daumen)
Ausgabe sollte dann sein:
Gerade
Krumm
Gerade
wie sollte es richtig gecoded werden?