object_set_solid 함수 설명
object_set_solid 함수는 특정 객체를 고체로 설정하거나 해제하는 기능을 제공합니다. 이 함수는 객체의 "고체" 플래그를 변경하여, 이후 생성되는 모든 인스턴스가 새로운 상태로 생성되도록 합니다. 그러나 이미 방에 존재하는 인스턴스에는 영향을 미치지 않습니다.
주요 사항
- 이 함수는 인스턴스 함수가 아닙니다.
- 각 인스턴스의 고체 플래그는
solid변수를 사용하여 개별적으로 설정할 수 있습니다. - 객체의 고체 플래그를 변경해도, 방에 이미 있는 인스턴스는 영향을 받지 않습니다.
- 함수 호출 이후에 생성된 인스턴스만 새로운 고체 상태를 반영합니다.
문법
object_set_solid( index, solid );
매개변수 설명
| 매개변수 | 타입 | 설명 |
|---|---|---|
| index | Object Asset | 변경할 객체의 인덱스 |
| solid | Boolean | 객체의 새로운 고체 상태 (true=고체, false=비고체) |
반환값
- N/A
예제
if (!object_get_solid(obj_Block)){
object_set_solid(obj_Block, true);
}
위 코드는 "obj_Block" 객체의 고체 플래그를 확인하고, 만약 false라면 true로 변경합니다.
활용 및 응용 예제
예제 1: 여러 객체의 고체 상태 변경
var objects = [obj_Block, obj_Wall, obj_Floor];
for (var i = 0; i < array_length(objects); i++) {
object_set_solid(objects[i], true);
}
이 코드는 여러 객체의 고체 상태를 한 번에 true로 설정합니다.
예제 2: 특정 조건에서 고체 상태 변경
if (player_score > 100) {
object_set_solid(obj_Block, false);
}
플레이어의 점수가 100을 초과하면 "obj_Block"의 고체 상태를 false로 변경합니다.
예제 3: 고체 상태에 따른 충돌 처리
if (object_get_solid(obj_Block)) {
// 충돌 처리 로직
}
"obj_Block"이 고체일 경우에만 충돌 처리 로직을 실행합니다.
예제 4: 게임 시작 시 모든 블록을 고체로 설정
function initialize_game() {
object_set_solid(obj_Block, true);
object_set_solid(obj_Wall, true);
}
게임 시작 시 모든 블록과 벽을 고체로 설정하는 초기화 함수입니다.