물리 고정 장치 엣지 형태 설정
이 문서는 물리 고정 장치의 엣지 형태를 정의하는 함수에 대해 설명합니다. 엣지 형태는 단순히 선으로, 다른 고정 장치와 겹칠 때 충돌을 발생시킵니다. 이 기능은 지형을 생성하거나 방의 경계를 만드는 데 매우 유용합니다. 엣지의 위치는 로컬 공간을 사용하여 정의되며, 인스턴스의 x/y 위치가 (0,0)으로 간주됩니다. 따라서 엣지를 생성할 때 이 점을 고려해야 합니다. 아래 코드 예제에서는 인스턴스가 방의 (0,0)에 배치되어 복잡성을 피하도록 설정되어 있습니다.
구문
physics_fixture_set_edge_shape(fixture, local_x1, local_y1, local_x2, local_y2)
인수 설명
인수 | 유형 | 설명 |
---|---|---|
fixture | 정수 | 고정 장치의 인덱스 |
local_x1 | 정수 | 엣지의 시작 x 위치 |
local_y1 | 정수 | 엣지의 시작 y 위치 |
local_x2 | 정수 | 엣지의 끝 x 위치 |
local_y2 | 정수 | 엣지의 끝 y 위치 |
반환값
이 함수는 반환값이 없습니다.
예제 코드
아래 코드는 다양한 높이의 "엣지" 고정 장치를 방의 길이에 걸쳐 생성합니다.
var xx = 0;
var y1 = room_height - 100;
var y2 = room_height - 50 - irandom(100);
for (var i = 0; i < 10; i++;){
var fix = physics_fixture_create();
physics_fixture_set_edge_shape(fix, xx, y1, xx + 50, y2);
physics_fixture_bind(fix, id);
physics_fixture_delete(fix);
xx += 50;
y1 = y2;
y2 = room_height - 50 - irandom(100);
}
활용 예제
- 지형 생성: 다양한 높이의 엣지를 사용하여 자연스러운 지형을 만들 수 있습니다.
gml var terrain_x = 0; var terrain_y = room_height - 100; for (var i = 0; i < 20; i++) { var height_variation = irandom(50); physics_fixture_set_edge_shape(fix, terrain_x, terrain_y, terrain_x + 50, terrain_y - height_variation); terrain_x += 50; terrain_y -= height_variation; }
- 방 경계 설정: 방의 경계를 정의하여 플레이어가 방을 벗어나지 않도록 할 수 있습니다.
gml physics_fixture_set_edge_shape(fix, 0, 0, room_width, 0); // 상단 경계 physics_fixture_set_edge_shape(fix, 0, room_height, room_width, room_height); // 하단 경계 physics_fixture_set_edge_shape(fix, 0, 0, 0, room_height); // 왼쪽 경계 physics_fixture_set_edge_shape(fix, room_width, 0, room_width, room_height); // 오른쪽 경계
- 플랫폼 생성: 엣지를 사용하여 플랫폼을 생성하여 캐릭터가 점프할 수 있도록 할 수 있습니다.
gml var platform_x = 100; var platform_y = room_height - 50; physics_fixture_set_edge_shape(fix, platform_x, platform_y, platform_x + 200, platform_y); // 플랫폼
이와 같은 방법으로 physics_fixture_set_edge_shape
함수를 활용하여 다양한 물리적 구조를 생성할 수 있습니다.