인스턴스 복사(instance_copy) 함수 설명
instance_copy
함수는 인스턴스를 "클론"하는 기능을 가지고 있습니다. 이 함수는 기존 인스턴스의 동일한 위치에서 새 인스턴스를 생성합니다. perf
인자를 사용하여 이 새로운 인스턴스가 Create 이벤트를 수행할지 여부를 지정할 수 있습니다. 이 함수는 새 인스턴스의 ID를 반환하며, 이를 변수에 저장하거나 해당 인스턴스에 접근하는 데 사용할 수 있습니다. 만약 Create 이벤트를 수행하지 않으면, 이 이벤트에서 초기화된 변수에 의존하는 경우 오류가 발생할 수 있습니다.
구문
instance_copy(perf);
인자 설명
인자 이름 | 타입 | 설명 |
---|---|---|
perf | Boolean | 새 인스턴스의 Create 이벤트 수행 여부 (true: 수행, false: 미수행) |
반환값
- Object Instance: 새로 생성된 인스턴스의 ID가 반환됩니다.
예제 코드
var _inst = instance_number(object_index);
if (_inst < 10) {
instance_copy(true);
}
위의 코드는 로컬 변수를 생성하고, 이 변수를 사용하여 현재 코드가 실행되고 있는 방(room) 내의 객체 인스턴스 수를 저장합니다. 만약 인스턴스 수가 10 미만이면, 해당 인스턴스는 자신을 복사합니다.
다양한 활용 예제
예제 1: 인스턴스 제한 생성
이 예제는 방 안에 특정 수의 적을 생성하는 데 유용합니다.
var max_enemies = 5;
var current_enemies = instance_number(enemy_object_index);
if (current_enemies < max_enemies) {
instance_copy(true);
}
이 코드는 enemy_object_index
인스턴스의 수가 5 미만일 때 새로운 적 인스턴스를 생성합니다.
예제 2: 동적으로 생성된 아이템
플레이어가 특정 조건을 만족할 때 아이템을 동적으로 생성할 수 있습니다.
if (player_score >= 100) {
instance_copy(true);
}
위 코드는 플레이어의 점수가 100 이상일 때 새로운 아이템 인스턴스를 생성합니다.
예제 3: 생명체 스폰
게임에서 생명체를 일정 시간 간격으로 스폰하는 데 사용됩니다.
if (current_time_interval % spawn_time == 0) {
instance_copy(true);
}
이 코드는 특정 시간 간격에 따라 새 생명체 인스턴스를 생성합니다.
정리
instance_copy
함수는 새로운 인스턴스를 생성하는 매우 유용한 도구입니다. 이를 통해 게임 내에서 다양한 객체를 효과적으로 관리하고 생성할 수 있습니다. 이 문서에서 제공한 예제와 방법을 사용하여 자유롭게 응용해 보세요.