본문 바로가기
GameMaker강좌[GM8]/슈팅게임강좌

[게임메이커강좌-슈팅]슈팅게임 만들기-6-패스와 타임라인

by 타락카얀 2013. 3. 6.
728x90




◈시나리오의 첫번째 - 패스기능



타임라인을 설정하기 전에 패스 기능에 대해 알아봅시다.
패스 폴더에서 패스 하나를 생성합시다.



(▲위의 화면에서 패스를 설정할 수 있습니다.)


패스는 인스턴스가 이동할 경로를 미리 설정하여 게임이 실행되었을 때
그 경로대로 이동 시킬 수 있습니다.
매우 간단하게 마우스 클릭만으로도 이동 경로를 쉽게 만들 수 있고,
적용 또한 쉽다는 것이 장점입니다.



(▲위의 화면에서 패스를 설정하는 과정)


일단 임의대로 적기체의 이동경로를 만들어 봅시다.
화면에 마우스 클릭만으로 패스를 설정할 수 있으니, 아무렇게 찍어봅시다.
sp는 게임상에 이동하는 속도의 100%로 이동하려면 100을,
그 보다 느리게 이동하려면 100보다 아래를 지정하면 됩니다.
(또한 이곳의 속도를 일정 구간만 다르게 설정하여 빠르게 혹은 느리게 이동 시킬수도 있음)


connection kind에서는 패스의 모양을 결정할 수 있습니다.


      Straight lines  :  직선 모양
      Smooth curve :  곡선 모양

      Closed  : 이것을 체크하면 패스의 시작부분과 끝부분을 이어주고 싶을 때 사용합니다.




(▲룸에서의 위치를 확인할 수도 있습니다.)


패스의 설정이 끝났다면 오브젝트에 설치를 해야겠지요.
해당 오브젝트를 열고, 만든 패스를 설치해봅시다.



(▲패스를 오브젝트에 설정)


Create이벤트에 Move 액션 탭->Paths->Set Path 액션을 삽입합니다.


      path : path0
      speed : 2
      at end : stop //패스를 종료했을 때 행동.
      relative : relative
      //absoulte는 절대위치(패스를 설정한 좌표 위치대로)에서 패스를 따라 움직이며,

      relative는 인스턴스의 생성위치를 기점으로 패스를 따라 움직입니다.


다음은 패스가 끝났을 때를 정해주어야합니다.
이벤트에서 Other메뉴를 선택하면 아래와 같은 메뉴를 볼 수 있을 겁니다.



(▲Other 메뉴)


위의 화면에서 End of path를 선택합니다.



이미 패스가 종료되었기 때문에 다음 행동을 지정해야합니다.
더 이상 필요없다면 파기 하는 것이 좋겠지요.
파기할때 주의할 점은 오브젝트에 Destroy 이벤트가 있을 때를 고려해야한다는 점입니다.



(▲Destroy 이벤트)


어떠한 이벤트에 의한 것이 아니라, 그냥 룸 상에서 없어지기만 하는 것이기 때문에,
Destroy의 이벤트를 전부 실행할 필요가 없지요.
그래서 hp가 0일때만 Destroy 이벤트의 내용을 실행하도록 설정합니다.




◈시나리오의 두번째 - 타임라인



음식의 재료가 준비되었다면 이제 조리를 해야겠지요.
일단 타임라인 폴더에 타임라인을 하나 만듭시다.

시간은 step으로 계산됩니다.
따라서 룸의 속도가 60이라면 60이 1초가 됩니다.



(▲시간에 따라 이벤트를 작성할 수 있습니다)


우선 위와 같이 룸에 생성될때 보이지 않아야겠지요.
y값을 음수값으로 해서 생성될때 룸 밖에서 생성하도록 합니다.
마찬가지로 여러분이 구상한 여러가지 상황을 고려해서
시간에 따라 다양한 유닛을 생성하도록 설정합니다.

다음은 오브젝트에 설치해야합니다.
스테이지용 오브젝트를 하나 만듭니다.



(▲타임라인을 배치)


Create이벤트에 만들어진 타임라인을 배치하면 이제 시나오대로 이벤트가 실행되게 됩니다.
Main2 액션탭->Timing->Set Time Line액션을 삽입합니다.


      time line : timeline0 //만들어진 타임라인을 지정함.
      position : 0//타임라인의 시작 위치
      start : Start Immediately //타임라인을 자동으로 실행하게 함. 물론 경우에 따라 실행할 수도 있음.
      loop : Don't Loop//타임라인을 루프 시킬 수도 있고 한번만 실행할 수도 있음.


참고로 loop 설정을 Don't Loop로 설정하면 타임라인은 1번만 실행됩니다.

그래서 타임라인의 이벤트가 짧거나, 타임라인의 이벤트를 계속 반복 실행하고 싶다면 Loop

설정하세요.


이제 타임라인의 배치는 모두 끝났습니다.
물론 강좌에선 간단하게 설정했지만, 이를 응용해 다양한 이벤트를 작성할 수 있습니다.
마지막으로 이 오브젝트를 룸에 배치하면, 이 타임라인대로 게임이 움직이게 됩니다.
단, 패스와 타임라인은 오브젝트 한개에 1개만 설정할 수 있습니다.
하지만, 오브젝트를 여러개 사용해서 타임라인을 지정하면 되겠지요.

다음 강좌에서는 점수 및 여러가지를 화면에 표시하는 것에 대해 알아봅시다.



-----------응용 예제-----------


shooter-1945-6.gmk





300x250

댓글