bbox_left 변수 설명 및 활용 예제
개요
bbox_left는 인스턴스의 왼쪽 경계 상자(bounding box) 위치를 반환하는 읽기 전용 변수입니다. 이 경계 상자는 인스턴스의 마스크의 최대 너비와 높이에 의해 정의됩니다. 마스크는 sprite_index 또는 mask_index로 설정됩니다. 스프라이트가 정확한 충돌 마스크를 가지고 있더라도 경계 상자는 존재하며, 특정 작업에 사용됩니다. 이 변수를 사용하여 경계 상자의 위치를 찾을 수 있습니다. 만약 인스턴스에 스프라이트가 할당되지 않은 경우, 반환되는 값은 인스턴스의 X 위치와 동일합니다.
문법
bbox_left;
반환 값
- 실수(정수)
예제
if (bbox_left < 0) {
x = sprite_xoffset;
}
위 코드는 인스턴스의 경계 상자가 방의 경계를 벗어났는지 확인하고, 벗어났다면 인스턴스를 새로운 위치로 설정합니다.
활용 예제
| 예제 번호 | 설명 |
|---|---|
| 1 | 인스턴스가 방의 왼쪽 경계를 넘어갔을 때, 인스턴스를 방 안으로 되돌리는 코드 |
| 2 | 인스턴스의 경계 상자가 특정 위치에 도달했을 때, 다른 스프라이트로 변경하는 코드 |
| 3 | 인스턴스가 경계 상자를 기준으로 다른 객체와 충돌했는지 확인하는 코드 |
| 4 | 경계 상자의 위치에 따라 인스턴스의 속도를 조절하는 코드 |
코드 스니펫
- 인스턴스가 방의 왼쪽 경계를 넘어갔을 때, 인스턴스를 방 안으로 되돌리는 코드:
if (bbox_left < 0) {
x = 0; // 방의 왼쪽 경계로 이동
}
- 인스턴스의 경계 상자가 특정 위치에 도달했을 때, 다른 스프라이트로 변경하는 코드:
if (bbox_left > 100) {
sprite_index = spr_newSprite; // 새로운 스프라이트로 변경
}
- 인스턴스가 경계 상자를 기준으로 다른 객체와 충돌했는지 확인하는 코드:
if (place_meeting(bbox_left, y, obj_other)) {
// 충돌 처리 코드
}
- 경계 상자의 위치에 따라 인스턴스의 속도를 조절하는 코드:
if (bbox_left < 50) {
hspeed = 5; // 속도 증가
} else {
hspeed = 2; // 속도 감소
}