게임 오브젝트를 생성하면, 기본 값으로 초기화된 여러 변수를 갖게 됩니다. 이러한 변수를 인스턴스 변수라고 합니다. 인스턴스 변수는 게임 방에 배치한 각 오브젝트 인스턴스마다 고유하며, 각 인스턴스가 생성될 때마다 값이 달라집니다. 어떤 변수는 자주 사용되고, 어떤 변수는 필요에 따라 덜 사용됩니다. 일반적으로 인스턴스 변수를 사용하면 사용자 정의 변수를 만드는 것보다 유용합니다.
대부분의 인스턴스 변수는 설정 및 읽기가 가능하여, 특정 변수를 조정함으로써 인스턴스의 속성과 행동을 변경할 수 있습니다. 예를 들어, visible이라는 내장 변수를 false로 설정하면 인스턴스가 그려지지 않도록 할 수 있습니다.
인스턴스에서 초기화되는 다양한 변수
| 변수 이름 |
설명 |
| id |
인스턴스의 고유 ID |
| visible |
인스턴스의 가시성 여부 |
| solid |
충돌 여부 |
| persistent |
인스턴스의 지속성 여부 |
| depth |
깊이 값 |
| layer |
레이어 정보 |
| alarm |
알람 변수 |
인스턴스는 아래의 메소드를 통해 문자열로 변환할 수 있습니다:
toString()
위치 및 이동 관련 변수
| 변수 이름 |
설명 |
| direction |
이동 방향 |
| friction |
마찰 값 |
| gravity |
중력 값 |
| gravity_direction |
중력 방향 |
| hspeed |
수평 속도 |
| vspeed |
수직 속도 |
| speed |
총 속도 |
| xstart |
시작 x 좌표 |
| ystart |
시작 y 좌표 |
| xprevious |
이전 x 좌표 |
| yprevious |
이전 y 좌표 |
오브젝트와 스프라이트 속성
오브젝트 속성
| 변수 이름 |
설명 |
| object_index |
해당 인스턴스가 생성된 오브젝트의 인덱스 |
스프라이트 속성
| 변수 이름 |
설명 |
| sprite_index |
스프라이트 인덱스 |
| sprite_width |
스프라이트 너비 |
| sprite_height |
스프라이트 높이 |
| sprite_xoffset |
스프라이트 x 오프셋 |
| sprite_yoffset |
스프라이트 y 오프셋 |
| image_alpha |
이미지 투명도 |
| image_angle |
이미지 각도 |
| image_blend |
이미지 블렌딩 방식 |
| image_index |
이미지 인덱스 |
| image_number |
현재 이미지 번호 |
| image_speed |
이미지 속도 |
| image_xscale |
이미지 x 배율 |
| image_yscale |
이미지 y 배율 |
충돌 마스크 및 경계 상자 관련 변수
| 변수 이름 |
설명 |
| mask_index |
충돌 마스크 인덱스 |
| bbox_bottom |
바닥 경계 |
| bbox_left |
왼쪽 경계 |
| bbox_right |
오른쪽 경계 |
| bbox_top |
위쪽 경계 |
경로 관련 변수
| 변수 이름 |
설명 |
| path_index |
경로 인덱스 |
| path_position |
경로 위치 |
| path_positionprevious |
이전 경로 위치 |
| path_speed |
경로 속도 |
| path_scale |
경로 배율 |
| path_orientation |
경로 방향 |
| path_endaction |
경로 종료 행동 |
타임라인 관련 변수
| 변수 이름 |
설명 |
| timeline_index |
타임라인 인덱스 |
| timeline_running |
타임라인 실행 여부 |
| timeline_speed |
타임라인 속도 |
| timeline_position |
타임라인 위치 |
| timeline_loop |
타임라인 반복 여부 |
시퀀스 관련 변수
| 변수 이름 |
설명 |
| in_sequence |
현재 시퀀스 여부 |
| sequence_instance |
현재 시퀀스 인스턴스 |
물리 관련 변수
게임메이커의 물리 함수와 관련된 많은 내장 변수가 있으며, 물리 시뮬레이션 관련 섹션에서 확인할 수 있습니다.
이 정보를 바탕으로 인스턴스 변수를 보다 쉽게 활용하고 응용할 수 있습니다. 다양한 게임의 예를 들면:
- 플랫폼 게임:
gravity 및 jump와 같은 변수로 플레이어의 낙하와 점프 속도를 조절할 수 있습니다. - 퍼즐 게임:
visible 변수를 사용하여 특정 퍼즐 조각을 숨기거나 나타낼 수 있습니다. - 전투 게임:
health와 같은 사용자 정의 변수를 만들어 캐릭터의 생명 값을 관리할 수 있습니다. - 시뮬레이션 게임:
direction 및 speed 변수를 활용해 캐릭터의 움직임이나 사건의 발생을 제어할 수 있습니다.
이와 같이 인스턴스 변수를 사용하여 게임의 다양한 요소를 조정하고 사용자 경험을 향상시킬 수 있습니다.