객체 스프라이트 확인하기
object_get_sprite 함수는 특정 객체가 스프라이트를 가지고 있는지 확인하고, 스프라이트가 있다면 그 인덱스를 반환합니다. 만약 스프라이트가 없다면 -1을 반환합니다. 이 함수는 인스턴스 함수가 아니라는 점에 유의해야 합니다. 즉, 객체는 스프라이트가 없을 수 있지만, 그 객체의 인스턴스는 스프라이트를 가질 수 있으며, 반대로도 가능합니다. 또한, 객체와 인스턴스가 서로 다른 스프라이트를 가질 수도 있습니다.
문법
object_get_sprite(obj);
매개변수 설명
| 매개변수 | 타입 | 설명 |
|---|---|---|
| obj | 정수 | 확인할 객체의 인덱스 |
반환값
- 스프라이트 자산의 인덱스
- 스프라이트가 없으면 -1
예제
var _spr = object_get_sprite(object_index);
if (sprite_index != _spr) {
sprite_index = _spr;
}
위의 예제는 인스턴스의 sprite_index를 해당 인스턴스의 object_index에 있는 스프라이트와 비교합니다. 만약 두 스프라이트가 다르다면, 객체 인덱스의 스프라이트와 동일한 스프라이트를 인스턴스에 할당합니다.
활용 및 응용 예제
1. 스프라이트 변경
객체의 스프라이트가 변경되었을 때, 모든 인스턴스에 적용할 수 있습니다.
if (object_get_sprite(object_index) != sprite_index) {
sprite_index = object_get_sprite(object_index);
}
2. 스프라이트가 없는 경우 처리
객체가 스프라이트를 가지고 있지 않을 때의 처리 방법입니다.
var _spr = object_get_sprite(object_index);
if (_spr == -1) {
// 스프라이트가 없을 때의 처리
show_message("이 객체는 스프라이트가 없습니다.");
} else {
sprite_index = _spr;
}
3. 여러 객체의 스프라이트 비교
여러 객체의 스프라이트를 비교하여 동일한 스프라이트를 가진 인스턴스를 찾는 예제입니다.
var sprite_to_check = object_get_sprite(other_object);
if (sprite_index == sprite_to_check) {
// 동일한 스프라이트를 가진 경우
show_message("같은 스프라이트를 가진 인스턴스입니다.");
}
이 문서에서는 object_get_sprite 함수의 사용법과 다양한 활용 예제를 설명했습니다. 이 함수를 통해 객체의 스프라이트를 쉽게 확인하고, 필요한 경우 인스턴스에 적용할 수 있습니다.