일단은 프레임부터..
스텝에 대해서 이야기 해보기 전에, 프레임(Frame)에 대해서 잠깐 짚고 넘어가겠습니다.
(▲ 게임에 표시된 FPS. 대부분의 게임들은 FPS수치를 보여주곤 합니다.)
프레임은 여러분이 게임할때도 자주 접하셨을 단어입니다. 프레임이란, 화면상에 보이는 장면 한장 한장을 의미하며, 보통 프레임의 단위는
초당 프레임(FPS) 을 기준으로 말하곤 합니다. FPS가 30이면 1초당 30개의 장면이 처리되어 화면상에 보이게 되는것을 의미하죠.
(즉, fps 값이 높으면 높을수록 초당 처리하는 장면수가 많다는 것을 의미하니.. 플레이어에게 좀 더 부드러운 화면으로 보이게 됩니다.)
스텝(Step)
이번에는 게임메이커 스튜디오의 '스텝(Step)' 개념에 대해서 설명하고자 합니다.
스텝(Step)은 인스턴스를 처리하는 횟수 한번 한번 을 의미합니다.
위와같이 설계된 오브젝트 하나에 여러가지 이벤트가 존재하지만 이 많은 이벤트들은 1 스텝(Step) 에 모두 다음과 같이 처리됩니다.
일단 오브젝트에서 설정한 내용을 인스턴스가 그대로 가지고 있을겁니다.
그럼 GMS는 인스턴스의 이벤트 하나하나를 순회하면서 이벤트 조건여부를 판단하고, 이벤트 조건이 '참' 이면 액션을 실행하게 되죠.
(위 이미지에서는 Create 이벤트만 나와있지만 실제로 모든 이벤트에 들어가 조건여부를 판단합니다.)
위 과정이 모두 1 스텝만에 이루어지게 되는겁니다. 스텝에 대해서 이정도 알아두고, 이번에는 룸 스피드에 대해서 살펴봅시다.
프레임에 FPS(초당 프레임) 단위를 많이 쓰듯이 스텝도 마찬가지로 초당 스텝을 의미하는 '룸 스피드(room_speed)'가 있습니다.
위 스크린샷에 보이는 룸 편집창에 'Speed' 값이 바로 룸스피드를 의미하며 사용자가 직접 설정이 가능합니다.
위와같이 기본 값은 30스텝으로 룸스피드가 정의되어 있으며, 1초당 30번 인스턴스를 처리한다는 것을 의미하게 되는것이죠.
+ 알아두면 좋은.. 이벤트의 흐름(Event Order)
위에서 한번의 스텝(Step) 에서 인스턴스 안에있는 모든 이벤트를 순회한다고 설명했습니다.
이 때 이벤트 하나하나를 훑어볼때도 어떠한 순서대로 이벤트를 훑어보는지 생각해 볼 수 있지 않을까요?
게임메이커 도움말에 'Event Order' 를 검색해보면 이벤트 처리순서에 대해서 친절하게 적혀있습니다.
대충 내용에는 이벤트 처리순서는 개발자(제조 업체)의 재량에 따라 달라질 수 있기때문에 명확히 단정짓기 힘들다고합니다.
하지만, 언제나 같은 순서대로 진행되는 이벤트는 존재하며, 다음은 가장 먼저 실행되는 이벤트 입니다.
-------------------------------------------------------------------------------
[Create Event] - 인스턴스가 처음 생성되는 시점.
[Instance Creation Code] - 룸에 배치해 놓은 오브젝트 를 오른쪽 버튼 클릭 후 작성된 코드내용이 실행되는 시점.
[Game Start Event] - 게임이 처음 실행되는 시점.
[Room Creation Code] - 룸 셋팅 의 settings 탭에 있는 Creation code에 작성된 코드내용이 실행되는 시점.
[Room Start Event] - 룸이 실행되는 시점.
---------------그 이후로는 다음과 같은 순서대로 이벤트가 진행됩니다.---------------
[Begin Step Event] - Step 이벤트 실행 되기 전 시점.
[Alarm Event] - 알람 타이머 이벤트가 발동되는 시점.
[Keyboard Event] - 키보드 관련 이벤트
[Mouse Event] - 마우스 관련 이벤트
[Step Event] - 매 스텝마다 발동되는데, 인스턴스의 좌표가 변경되기 전에 실행됩니다.
[End Step Event] - Step 이벤트 종료 되는 시점.
-------------------------------------------------------------------------------
이후 마지막으로 [Draw Event] 관련 이벤트들이 진행됩니다.
일단.. 여러분은 이벤트 처리순서에 대해서는 일단 "이벤트도 정해진 순서대로 실행되는구나" 정도로 알아두셔도 괜찮아요!
언젠가 이벤트가 흘러가는 순서에 대해서 알아 볼 필요가 다시 느껴질 때가 올겁니다. 그 때 다시 살펴봐도 문제 없습니다.
이번강좌에서는 스텝에 대한 개념만 꽉 잡아두는데 중점을 두시기 바랍니다.
다음강좌에서는 매 스텝마다 실행되는 이벤트인 '스텝 이벤트' 와 스텝을 이용한 '알람 이벤트' 를 프로젝트에서 사용해보도록 하겠습니다.
'GMStudio > GMS 강좌' 카테고리의 다른 글
게임메이커 스튜디오 기초강좌 [9] 백그라운드, 타일 (0) | 2015.06.10 |
---|---|
게임메이커 스튜디오 기초강좌 [8] 스텝 이벤트, 알람 이벤트 (0) | 2015.06.09 |
게임메이커 스튜디오 기초강좌 [6] 좌표와 이동, 이벤트와 액션 (0) | 2015.05.30 |
게임메이커 스튜디오 기초강좌 [5] 룸 제작 (6) | 2015.05.29 |
게임메이커 스튜디오 기초강좌 [4] 오브젝트 제작 (0) | 2015.05.28 |