2016-08-04 4 views
0

바닐라 처리에는 "모양이 그려지는 위치"를 수정하기위한 shapeMode()이 있습니다. 가능한 경우, ControlP5을 사용하여 UI "컨트롤러"를 그리는 동일한 기능을 어떻게 얻을 수 있습니까?ControlP5의 "모양 모드"

구체적으로는, 나는 다음과 같은 코드를 시도 :

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

을 그리고이 결과를 가지고 :

:

Screenshot

하지만 제가보고 싶은 것은이입니다 enter image description here

분명히 .setPosition(width/2 - buttonWidth/2, height/2 - buttonWidth/2)과 같은 것이 좋겠지 만 코드를 최소화하고 싶습니다.

답변

1

shapeMode() 함수를 호출하면 shape() 함수로 그려진 도형의 모드 만 변경됩니다.

ControlP5는 단추를 그릴 때 shape() 기능을 사용하지 않습니다. 그것은 rect() 기능을 사용합니다.

rectMode() 함수를 사용하여 사각형 그리기 방법을 변경할 수 있습니다. 더 많은 정보는 the reference에서 찾을 수 있습니다.

하지만 결과에 만족할 지 의심됩니다. 이렇게하면 버튼의 사각형이 이동하지만 버튼의 텍스트는 이동하지 않으므로 모든 텍스트가 중심을 벗어납니다. 그것은 하나의 이슈 일뿐입니다. 나는 많은 사람들이있을 것이라고 확신합니다.

만약 내가 당신이라면 나는 계산을 스스로 할 것입니다. 코드를 최소한으로 유지하는 것에 대해 정말로 염려한다면, 오프셋을 수행하는 데 필요한 "논리"를 캡슐화하는 자체 래퍼 클래스 또는 유틸리티 함수를 만들 수 있습니다. 그러나 당신은 당신의 코드를 읽기 쉽고 유지할 수 있도록 유지하는 것에 대해 더 걱정해야한다.