GAME MAKER 강좌
KAYAN
◈ Struct (구조체)
구조체(Struct)는 간단히 말해서 다른 변수들의 모음을 보유하는 변수입니다.
구조체가 보유하는 변수들은 데이터 유형일 수 있고, 이러한 변수는 구조체가 정의된 후에 읽고
쓸 수 있습니다.
구조체의 기본 구조는 아래와 같습니다.
<구조체변수> = { <변수> : <값>, <변수> : <값>, ... } |
예를 들면 아래와 같이 정의 할 수 있습니다.
예)
mystruct = { a : 20, b : "Hello World" } |
이것은 mystruct 구조체에 a와 b의 값을 정의하여 포함 시킵니다.
조금 더 나아가 구조체에 사용자 함수를 비롯한 다양한 변수들을 정의할 수도 있습니다.
예)
mystruct = { a : 10, b : "Hello World", c : irandom(5), d : x + 50, e : function( a, b )//사용자 함수 생성 { return a + b; }, f : [ 10, 20, 30, 40, 50 ] //배열 } |
구조체를 정의하는 방법을 알아봤다면 이제 정의된 구조체의 특정 변수를 호출 해야겠지요.
정의된 구조체 호출은 아래와 같이 할 수 있습니다.
예)
text = mystruct.b + string(mystruct.a); |
이것은 mystruct 구조체의 변수 b와 a를 문자열로 더하는 것입니다.
b값이 "Hello World"이고, a값이 "10"이므로 결과는 "Hello World10"이 됩니다.
그리고 구조체 내에 또 다른 구조체를 추가 생성할 수 있습니다.
예)
mystruct = { a : { aa : "This is an example" }, b : { bb : "And another one" }, } |
위와 같을 경우 구조체 내의 구조체 호출은 다음과 같이 할 수 있습니다.
var _str = mystruct.a.aa + " " + mystruct.b.bb; show_debug_message(_str); |
구조체가 더 이상 필요하지 않은 경우 Clean Up 이벤트에서 delete 연산자를 사용하여
메모리에서 제거 할 수도 있습니다.
◎ delete 구조체이름
예) mystruct 를 제거하는 경우Clean Up 이벤트에서 delete 연산자를 사용해 제거 //Clean Up 이벤트 delete mystruct; |
인스턴스의 Clean Up 이벤트를 사용하여 가비지 수집기(Garbage collector)에 구조체가 삭제 될
것임을 명시적으로 알립니다.
※ [참고] : 가비지 수집기(Garbage collector)는 게임 코드의 일부인 자동화된 도구이며 명시적으로
제거 할 필요없이 더 이상 코드에서 참조되지 않을 때 메모리에서 특정 항목 (예 : 배열 및 구조체)을
제거하는데 사용됩니다.
다만 구조체가 더 이상 코드에서 사용되지 않는 경우 가비지 수집기가 다음 게임 단계에서 정리 작업을
자동으로 수행하기 때문에 반드시 필요한 작업은 아닙니다.
'GameMaker강좌[GMS2] > GMS2기초강좌' 카테고리의 다른 글
[게임메이커 강좌-기초][GMS2] 게임화면 캡쳐하기 (0) | 2021.03.29 |
---|---|
[게임메이커 강좌-기초][GMS2]로컬 패키지 만들기 (0) | 2021.03.28 |
[게임메이커 강좌-기초][GMS2] 랜덤값 (0) | 2021.03.27 |
[게임메이커 강좌-기초][GMS2] 스크립트 : 사용자 함수 (0) | 2021.03.22 |
[게임메이커 강좌-기초][GMS2]문자열 조합으로 변수 참조 (0) | 2021.03.21 |
댓글