skeleton_get_num_bounds 함수 설명
skeleton_get_num_bounds 함수는 현재 코드가 실행되고 있는 인스턴스에 할당된 스켈레톤 애니메이션 스프라이트와 관련된 바운딩 박스의 수를 반환합니다. 이 값은 skeleton_get_bounds() 함수와 함께 사용하여 각 바운딩 박스에 대한 데이터를 가져오는 데 활용할 수 있습니다.
문법
skeleton_get_num_bounds();
반환값
- 실수형(Real): 바운딩 박스의 개수
예제 코드
var num = skeleton_get_num_bounds();
var yy = 60;
for(var i = 0; i < num; i++){
var b_info = skeleton_get_bounds(i);
if b_info[0] > 0 {
var data = b_info[1] + ":";
for(var j = 0; j < b_info[0]; j++){
data += " (" + string(b_info[(j * 2) + 2]) + ", " + string(b_info[(j * 2) + 2 + 1]) + ")";
}
draw_text(20, yy, data);
yy += 20;
}
}
위의 코드는 현재 할당된 스프라이트와 관련된 각 바운딩 박스를 반복하여 해당 데이터를 문자열로 화면에 그립니다.
활용 예제
| 예제 번호 | 설명 |
|---|---|
| 1 | 스켈레톤 애니메이션의 바운딩 박스를 시각적으로 표시하기 |
| 2 | 바운딩 박스의 크기와 위치를 기반으로 충돌 감지 구현하기 |
| 3 | 바운딩 박스 정보를 로그에 기록하여 디버깅하기 |
| 4 | 바운딩 박스의 수에 따라 다른 게임 오브젝트 생성하기 |
예제 코드 스니펫
- 바운딩 박스를 시각적으로 표시하기:
gml var num = skeleton_get_num_bounds(); for(var i = 0; i < num; i++){ var b_info = skeleton_get_bounds(i); draw_rectangle(b_info[2], b_info[3], b_info[4], b_info[5], false); } - 충돌 감지 구현하기:
gml var num = skeleton_get_num_bounds(); for(var i = 0; i < num; i++){ var b_info = skeleton_get_bounds(i); if place_meeting(x, y, b_info[1]) { // 충돌 처리 코드 } } - 로그에 기록하기:
gml var num = skeleton_get_num_bounds(); for(var i = 0; i < num; i++){ var b_info = skeleton_get_bounds(i); show_debug_message("Bounding Box " + string(i) + ": " + string(b_info)); } - 게임 오브젝트 생성하기:
gml var num = skeleton_get_num_bounds(); for(var i = 0; i < num; i++){ var b_info = skeleton_get_bounds(i); if b_info[0] > 0 { instance_create_layer(b_info[2], b_info[3], "Instances", obj_new); } }