GAME MAKER 강좌
KAYAN
◈ 문자열 조합으로 리소스 참조
아래와 같이 문자열+ 숫자 또는 문자열+ 문자열처럼 문자열 조합으로 리소스를 참조하는
방법에 대해 알아봅시다.
//문자열 + 숫자 "obj_Enemy_" + string(global.Level) //문자열 + 문자열 "obj_Enemy_" + "05" |
문자열로 리소스의 인덱스를 참조할 때는 아래의 함수를 사용합니다.
◎ asset_get_index(name)
name 은 참조할 리소스 이름을 문자열로 지정하면 됩니다.
참조하려는 리소스가 존재할 때 0 이상의 인덱스 값을 반환하고, 리소스가 존재하지 않으면 -1을
반환합니다.
예를 들면 아래와 같이 응용할 수 있습니다.
var obj = asset_get_index("obj_Enemy_" + string(global.Level)); if obj > -1 { instance_create_layer(random(room_width), random(room_height), obj, "Enemy_Layer"); } |
이 예제는 문자열에서 오브젝트 인덱스를 참조하고 해당 인덱스가 있으면 "Enemy_Layer 레이어에
해당 오브젝트를 생성하게 됩니다.
또한, 아래 함수를 사용하면 리소스의 유형을 확인할 수도 있습니다.
◎ asset_get_type(name)
이 함수를 사용하면 아래의 상수중 하나를 반환하게 됩니다.
asset_object : 오브젝트
asset_sprite : 스프라이트
asset_sound : 사운드
asset_room : 룸
asset_tiles : 타일
asset_path : 패스
asset_script : 스크립트
asset_font : 폰트
asset_timeline : 타임라인
asset_shader : 쉐이더
asset_animationcurve : 애니메이션 커브
asset_sequence : 시퀸스
asset_unknown : 존재하지 않음
만약 존재하지 않는 리소스라면 asset_unknown 을 반환합니다.
예를 들면 아래와 같이 응용할 수 있습니다.
if asset_get_type("pth_Path_" + string(global.Game)) == asset_unknown { show_debug_message("Path doesn't exist!!!"); } else { path_index = asset_get_index("pth_Path_" + string(global.Game)); } |
이 예제는 문자열에서 존재하는 리소스의 유형을 확인하여 리소스가 존재하지 않거나, 올바른 유형이
아닌 경우 디버그 메시지를 표시합니다.
그리고 존재하는 리소스이고, 올바른 유형을 반환한다면 리소스의 인덱스를 변수에 할당하게 됩니다.
'GameMaker강좌[GMS2] > GMS2기초강좌' 카테고리의 다른 글
[게임메이커 강좌-기초][GMS2] 스크립트 : 사용자 함수 (0) | 2021.03.22 |
---|---|
[게임메이커 강좌-기초][GMS2]문자열 조합으로 변수 참조 (0) | 2021.03.21 |
[게임메이커 강좌-기초][GMS2] 사용자 숫자 표시 : 스프라이트 폰트 (1) | 2021.03.19 |
[게임메이커 강좌-기초][GMS2] macro : 매크로 (0) | 2021.03.18 |
[게임메이커 강좌-기초][GMS2] enum : 열거형 데이터 타입 (2) | 2021.03.16 |
댓글