체인 형태의 물리 피처 설정
physics_fixture_set_chain_shape
함수는 "체인" 형태의 피처를 정의합니다. 체인 피처는 여러 개의 점으로 구성되며, 이 점들은 엣지 형태로 연결됩니다. 이 함수는 피처의 인덱스(ID)를 받아들이며, 체인을 닫을지 여부를 설정할 수 있습니다. true
로 설정하면 마지막 점이 첫 번째 점과 엣지로 연결되고, false
로 설정하면 연결되지 않습니다. 이 함수는 체인을 만들기 위해 필요한 점들을 추가할 수 있도록 피처를 준비할 뿐이며, 이 점들은 physics_fixture_add_point
함수를 사용하여 추가해야 합니다. 이는 다각형 피처를 만들 때와 유사합니다.
체인 피처를 만들 때는 최소 두 개의 점을 제공해야 하지만, 추가로 더 많은 점을 추가하여 완성된 피처를 만들 수 있습니다.
문법
physics_fixture_set_chain_shape(fixture, loop)
인수 설명
인수 | 유형 | 설명 |
---|---|---|
fixture | Physics Fixture ID | 피처의 인덱스 |
loop | Boolean | 체인을 닫을지 여부 (true 또는 false) |
반환값
N/A
예제
다음 코드는 다양한 높이의 "엣지" 피처를 생성하여 방의 길이에 걸쳐 선을 만듭니다.
var xx = -100;
var yy = room_height / 2;
var fix = physics_fixture_create();
physics_fixture_set_chain_shape(fix, false);
for (var i = 0; i < 10; i++;){
physics_fixture_add_point(fix, xx, yy);
xx += 50 + random(150);
yy = (room_height / 2) - 250 + irandom(500);
}
physics_fixture_bind(fix, id);
활용 예제
- 체인 형태의 경로 생성
방 안에 다양한 높이의 경로를 만들기 위해 체인 피처를 사용하여 장애물이나 경로를 설정할 수 있습니다.
var pathFix = physics_fixture_create();
physics_fixture_set_chain_shape(pathFix, true);
physics_fixture_add_point(pathFix, 0, 0);
physics_fixture_add_point(pathFix, 100, 50);
physics_fixture_add_point(pathFix, 200, 0);
physics_fixture_bind(pathFix, id);
- 체인 형태의 경계 설정
게임의 특정 영역을 제한하기 위해 체인 피처를 사용하여 경계를 설정할 수 있습니다.
var boundaryFix = physics_fixture_create();
physics_fixture_set_chain_shape(boundaryFix, false);
physics_fixture_add_point(boundaryFix, 0, 0);
physics_fixture_add_point(boundaryFix, 0, room_height);
physics_fixture_add_point(boundaryFix, room_width, room_height);
physics_fixture_add_point(boundaryFix, room_width, 0);
physics_fixture_bind(boundaryFix, id);
- 다양한 형태의 체인 생성
랜덤한 형태의 체인을 생성하여 게임 내에서 다양한 시각적 효과를 줄 수 있습니다.
var randomChainFix = physics_fixture_create();
physics_fixture_set_chain_shape(randomChainFix, false);
for (var i = 0; i < 15; i++) {
var x = random(room_width);
var y = random(room_height);
physics_fixture_add_point(randomChainFix, x, y);
}
physics_fixture_bind(randomChainFix, id);