게임제작/소스코드

[게임메이커스튜디오2]8방향 스프라이트 이동 마우스 클릭만들기

게임코드프리 2022. 4. 12. 15:27
반응형

프레임으로 이미지를 교체하기 위한 8방향 애니메이션 스프라이트

 

게임메이커 스튜디오에서 8방향의 움직임과 마우스를 클릭했을 때 클릭 앤 무브를 

구현하는 방법에 대해서 자료를 찾아보았지만 대부분의 코드들이 마우스 클릭 + 8방향 이동이 아닌

키보드로 조작을 했을때 스프라이트의 변경과 이동에 대해서만 다루었기에

제작한 방식을 공유하며 설명을 할까 합니다.

 

[준비물]

(1) 8방향을 표시할 8방향의 이미지

(2) 끝

 

코드의 구조설명

대부분의 코드는 플레이어라는 오브젝트가 주관하도록 설계되어 있습니다.

첫 번째로 obj_player라는 오브젝트를 만든 후 크리에이트 코드를 작성합니다.

[Create Event]

 

이 부분의 내용은 마우스 좌표를 리셋하기 위해서 enum을 썼으며

초록색으로 된 글자는 게임메이커 스튜디오2의 기본 함수이므로 딱히 설명이 필요한 부분은 없어 보입니다.

 

[Mouse Click Event]

탭 이벤트도 동일한 코드

 

마우스를 클릭했을 때 유저가 어느 좌표를 찍었는지 알아야 하기에

변수에 마우스의 좌표를 얻어오고 이후 그 방향으로 가는 동안에 8방향 이미지 설정과

클릭했을 때의 이펙트 오브젝트를 생성하는 코드가 적혀있습니다.

코드를 자세히 보면 8방향을 45도 각도로 나누어 이미지 인덱스를 프레임에 대입하여 뿌려주는 것을 알 수 있습니다.

 

[Step Event]

 

반복적으로 계산을 해주는 스텝 이벤트에서는 좌표가 들어갈 경우 

move_towards_point 함수를 사용하여 이동시키고 있으며 만약에 클릭한 좌표에 도달할 경우에

움직임을 없애기 위해서 스피드를 0으로 초기화시켜줍니다.

이것을 하지 않을 경우에는 클릭한 곳에 도달했어도 계속 덜덜거리며 움직임이 이어지기 때문에 

주의해야 합니다.

또한 마찬가지로 마우스를 클릭한 좌표와 동일해질 경우 다시 좌표를 리셋해주는 형태입니다.

 

 

나머지의 설명

대부분 나머지는 이 시스템에 필요한 코드가 아닌 그저 점수를 드로잉 해주거나

오브젝트와 닿았을 때 점수를 표시해주고 오브젝트는 사라지는 정도의 코드들이므로

딱히 중요하지 않은 부분들입니다.

이해를 돕기위해서 샘플영상과 소스코드가 포함된 프로젝트 파일도 첨부합니다.

 

bandicam 2022-04-12 15-24-12-767.mp4
2.85MB
cleanup_cat.zip
1.31MB

반응형
facebook twitter kakaoTalk kakaostory naver band shareLink
人気ブログランキングでフォロー