물리 세계 생성
물리 세계를 생성하는 것은 게임에서 물리적 상호작용을 구현하는 데 필수적입니다. 이 문서에서는 physics_world_create
함수에 대해 설명하고, 다양한 활용 및 응용 예제를 제공합니다.
함수 설명
physics_world_create
함수는 객체에 대한 물리적 정의가 있더라도, 이를 배치할 물리 세계가 없으면 기본적인 GameMaker 충돌 시스템으로 돌아갑니다. 따라서 이 함수를 사용하여 지정된 방에 물리 시스템을 생성해야 합니다. 이 함수는 방과 방에서 생성된 모든 인스턴스에 물리 "세계"를 연결합니다. 이렇게 하면 정의된 물리 법칙에 따라 객체가 행동하게 됩니다.
비율 설정
이 함수는 픽셀 크기와 미터 간의 비율을 정의하는 인수를 포함하고 있습니다. 물리 함수는 실제 세계의 측정을 사용하므로, 픽셀 좌표와 크기를 실제 세계의 측정으로 변환해야 합니다. "픽셀 대 미터 비율"을 조정하여 사용 중인 객체의 평균 픽셀 크기가 적절한 크기의 시뮬레이션 물리 객체로 변환되도록 해야 합니다. 예를 들어, 32픽셀이 1미터에 해당하도록 설정할 수 있습니다.
문법
physics_world_create(pixeltometrescale);
인수 설명
인수 이름 | 유형 | 설명 |
---|---|---|
pixeltometrescale | 실수 | 화면의 픽셀과 실제 세계의 미터 간의 비율을 정의합니다. 예를 들어, 32:1 비율은 1/32 (또는 0.03125)로 지정됩니다. |
반환값
이 함수는 반환값이 없습니다.
예제
// 32픽셀이 1미터에 해당하는 물리 세계 생성
physics_world_create(1/32);
위 코드는 현재 방에 물리 세계를 생성하며, 비율은 32픽셀이 1미터에 해당합니다.
활용 예제
- 간단한 물리 객체 생성 ```gml // 물리 세계 생성 physics_world_create(1/32);
// 물리 객체 생성 var obj = instance_create_layer(x, y, "Instances", obj_physics); ```
- 중력 설정
gml // 중력 설정 physics_world_gravity(0, 9.8); // 수직 방향으로 9.8m/s²의 중력
- 충돌 처리
gml // 충돌 이벤트 처리 if (place_meeting(x, y, obj_wall)) { // 벽과 충돌 시 처리 x = previous_x; // 이전 위치로 되돌리기 }
- 물리 속성 조정
gml // 물리 속성 조정 physics_set_density(obj_physics, 1.0); // 밀도 설정 physics_set_friction(obj_physics, 0.5); // 마찰 설정
이와 같이 physics_world_create
함수를 활용하여 게임 내에서 물리적 상호작용을 구현할 수 있습니다.