Solid 속성에 대한 설명
Solid 속성이란?
solid 속성은 객체 편집기(Object Editor)에서 객체의 속성을 통해 설정하거나, 이 내장 변수의 값을 변경하여 인스턴스를 '고체'로 표시할 수 있습니다. solid가 true로 설정되면 충돌이 감지될 때, 충돌하는 인스턴스는 충돌 이전 단계에서의 위치로 자동으로 되돌려집니다. 이후 충돌 이벤트에서의 코드나 동작이 실행됩니다. 반면, solid가 false로 설정되면 모든 위치 조정은 충돌 이벤트를 통해 처리해야 합니다.
문법
solidReturns:Boolean
예제 코드
충돌 시 other 인스턴스의 solid 플래그를 확인하고, true일 경우 이전 위치로 되돌리는 코드 예제입니다.
if (other.solid == true) {
x = xprevious;
y = yprevious;
}
활용 및 응용 예제
| 코드 예제 | 설명 |
|---|---|
| ```gml | // 기본 충돌 처리 |
| if (other.solid) { | 충돌 대상이 고체일 때 동작을 수행 |
| x = xprevious; | 'x' 좌표를 이전 위치로 되돌리기 |
| y = yprevious; | 'y' 좌표를 이전 위치로 되돌리기 |
| } | |
| ``` | |
| ```gml | // 플레이어와 벽의 충돌 처리 |
| if (other.solid) { | 충돌하는 대상이 고체인 경우 |
| // 플레이어가 벽에 부딪히면 | |
| x = xprevious; | 플레이어의 위치를 이전 위치로 회귀 |
| y = yprevious; | |
| show_message("벽에 충돌했습니다!"); | 메시지 출력 |
| } | |
| ``` | |
| ```gml | // 적과의 충돌 처리를 다르게 할 때 |
| if (other.solid) { | 적이 고체라면 |
| // 적의 위치 조정 | |
| x = xprevious; | 적의 위치를 이전 위치로 되돌리기 |
| // 적의 체력이 감소 | |
| health -= 10; | |
| } | |
| ``` |
결론
solid 속성은 게임 개발에서 객체 간의 충돌 처리를 효율적으로 관리하는 중요한 요소입니다. 이 속성을 활용하여 게임 내 다양한 물체의 상호작용을 보다 사실감 있게 구현할 수 있습니다.