2016-08-04 16 views
0

Vanille Verarbeitung hat shapeMode() zum Ändern "der Ort, von dem Formen zeichnen." Wie, wenn möglich, kann man mit ControlP5 die gleiche Funktionalität bekommen, die Benutzeroberfläche "Controller" zu zeichnen?"Shape Mode" für ControlP5

Konkret habe ich den folgenden Code versucht:

shapeMode(CENTER); 
cp5.addButton("On/Off") 
.setPosition(width/2, height/2) 
.setSize(300, 300) 
.setColorBackground(color(0, 113, 0)); 

Und bekam dieses Ergebnis:

Screenshot

Aber was würde ich sehen möchte, ist dies:

enter image description here

Offensichtlich würde so etwas wie .setPosition(width/2 - buttonWidth/2, height/2 - buttonWidth/2) funktionieren, aber ich möchte den Code minimal halten.

Antwort

1

Durch Aufruf der Funktion shapeMode() wird nur der Modus der mit der Funktion shape() gezeichneten Formen geändert.

ControlP5 verwendet die Funktion shape() nicht zum Zeichnen von Schaltflächen. Es verwendet die rect() Funktion.

Mit der Funktion rectMode() können Sie ändern, wie Rechtecke gezeichnet werden. Weitere Informationen finden Sie in the reference.

Aber ich bezweifle, dass Sie mit den Ergebnissen zufrieden sein werden. Dadurch wird das Rechteck der Schaltfläche verschoben, aber der Text der Schaltflächen wird nicht verschoben, sodass der gesamte Text nicht zentriert ist. Das ist nur ein Thema, ich bin mir sicher, dass es noch viele andere geben wird.

Wenn ich Sie wäre, würde ich nur die Berechnungen selbst machen. Wenn Sie wirklich besorgt sind, Ihren Code minimal zu halten, könnten Sie eigene Wrapper-Klassen oder Utility-Funktionen erstellen, die die "Logik" einbetten, die für die Verrechnung erforderlich ist. Aber du solltest dir mehr Sorgen machen, deinen Code lesbar und wartbar zu halten.