1

Vanilla ProcessingshapeMode()用于修改“绘制形状的位置”。如果可能的话,如何使用ControlP5获得相同的功能来绘制 UI“控制器” ?

具体来说,我尝试了以下代码:

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

并得到了这个结果:

截屏

但我想看到的是:

在此处输入图像描述

显然,类似的东西.setPosition(width/2 - buttonWidth/2, height/2 - buttonWidth/2)会起作用,但我想保持代码最少。

4

1 回答 1

2

调用该shapeMode()函数只会更改使用该函数绘制的形状的模式shape()

ControlP5 不使用该shape()函数来绘制按钮。它使用该rect()功能。

您可以使用该rectMode()函数来更改矩形的绘制方式。更多信息可以在参考资料中找到。

但我怀疑你会对结果感到满意。这将移动按钮的矩形,但不会移动按钮的文本,因此您的所有文本都将偏离中心。这只是一个问题,我相信还有很多其他问题。

如果我是你,我会自己计算。如果您真的担心保持代码最小化,那么您可以创建自己的包装类或实用函数来封装执行偏移所需的“逻辑”。但是恕我直言,您应该更担心保持代码的可读性和可维护性。

于 2016-08-04T13:51:37.153 回答