먼저, P5.js의 기본적인 유닛은 Rectangle과 Circle입니다. 따라서 콜리전을 감지하기 위해서는 이러한 유닛을 사용해야 합니다.
Rectangle과 Circle의 충돌을 감지하기 위해서는 다음과 같은 단계를 따를 수 있습니다:
-
첫 번째로, 두 도형이 겹쳐져 있는지 확인해야 합니다. Rectangle과 Circle은 각각 x, y 좌표와 width, height 또는 반지름으로 정의됩니다. 따라서 두 도형이 겹치려면 x, y 좌표 및 크기를 이용해 겹치는 영역을 계산할 수 있습니다.
-
두 번째로, 겹치는 영역에서 실제로 충돌이 일어나는지 여부를 확인해야 합니다. Rectangle과 Circle 사이의 충돌을 감지하기 위해 P5.js에서는 collideRectCircle() 함수를 사용할 수 있습니다. 이 함수는 두 개의 Rectangle 및 Circle 객체와 함께 사용됩니다. 만약 충돌이 감지되면 true를 반환하고, 충돌이 없다면 false를 반환합니다.
아래는 P5.js에서 Rectangle과 Circle이 충돌하는지 여부를 감지하는 예제 코드입니다.
let rectX, rectY, rectWidth, rectHeight;
let circleX, circleY, circleRadius;
function setup() {
createCanvas(400, 400);
rectX = 100;
rectY = 100;
rectWidth = 50;
rectHeight = 50;
circleX = 200;
circleY = 200;
circleRadius = 25;
}
function draw() {
background(220);
// Rectangle 그리기
rect(rectX, rectY, rectWidth, rectHeight);
// Circle 그리기
circle(circleX, circleY, circleRadius);
// 충돌 검사
if (collideRectCircle(rectX, rectY, rectWidth, rectHeight, circleX, circleY, circleRadius)) {
// 충돌이 일어난 경우 처리할 로직 작성
fill('red');
} else {
fill('blue');
}
}
function mouseClicked() {
// Circle 위치를 마우스 클릭 위치로 변경
circleX = mouseX;
circleY = mouseY;
}
위의 예제 코드에서는 collideRectCircle()
함수를 사용하여 Rectangle과 Circle의 충돌을 감지합니다. 충돌이 감지되는 경우, fill()
함수를 사용하여 도형의 색을 변경할 수 있습니다.
이는 P5.js에서 콜리전 감지 및 충돌 처리를 간단하게 구현한 예제입니다. 추가적인 세부 사항이나 다른 도형에 대한 콜리전 감지를 원하는 경우, P5.js의 공식 문서를 참조하는 것을 권장합니다.