본문 바로가기

GameMaker강좌[GMS2]/기타장르강좌7

[게임메이커 강좌-기타][GMS2]미니맵 만들기 GAME MAKER 강좌 KAYAN ◈ 미니맵 만들기 이번 강좌에서는 미니맵을 만들어 봅시다. (▲ 미니맵) 우선 미니맵 구성을 하기위해 미니맵에 표시할 유닛 오브젝트를 만들고 룸에 배치합시다. 플레이어 오브젝트는 obj_player, 적 오브젝트는 obj_enemy 으로 합니다. (▲ 배치할 플레이어 유닛) (▲ 배치할 적 유닛) 어차피 테스트용이기 때문에 대충 만드셔도 됩니다. 다음은 룸을 추가하여 룸의 크기를 설정하고, 유닛 오브젝트들을 배치합니다. 강좌에서는 프로젝트를 생성했을 때 기본적으로 생성된 룸을 활용하여 룸의 크기는 2000 x 2000 으로 설정하겠습니다. (▲ 룸에 유닛 배치) 그리고 카메라 뷰를 설정합니다. 카메라 뷰 활성화는 Enable Viewports 를 체크하고, 사용할 뷰에.. 2023. 3. 12. (♡ )
[게임메이커 강좌-기타][GMS2]그리드 기반의 길찾기-6 A Star 알고리즘 GAME MAKER 강좌 KAYAN ◈ 그리드 기반의 길찾기(Path finding) A Star 알고리즘 이번 강좌에서는 mp_grid 기능을 사용하지 않는 길찾기를 만들어 볼 겁니다. 강좌에서는 아래와 같은 방식으로 길찾기를 구성할 거에요. (▲ 길찾기) 이 방식은 오브젝트가 오브젝트의 중심부로부터 이동할 수 있는 지역을 모두 체크하여 우선 순위를 지정하고, 좌표를 저장해요. 이 우선 순위는 중심부와의 거리에 해당합니다. 예를 들어, 오브젝트 현재 위치는 우선 순위 1부터 시작하고, 1칸 다음은 2, 2칸은 3으로 매깁니다. (▲ 이동 가능 좌표의 우선순위) 그리고 이동 가능 지역의 좌표를 모두 저장했다면, 저장한 좌표들을 체크하여 이동할 목표 지점과 일치하는 좌표의 우선 순위를 시작으로 오브젝트 중.. 2023. 1. 29. (♡ )
[게임메이커 강좌-기타][GMS2]그리드 기반의 길찾기-5 이동 거리 제한 GAME MAKER 강좌 KAYAN ◈ 그리드 기반의 길찾기(Path finding) 이동 거리 제한 이번 강좌에서는 길찾기에서 이동 거리 제한하는 방법에 대해 알아봅시다. (▲ 이동 제한) 현 강좌는 [응용편1]강좌의 예제를 기반으로 합니다. [응용편1]의 플레이어 이동은 아래와 같습니다. //● obj_player - Step 이벤트 var mx,my; mx=(floor(mouse_x/global.grid)*global.grid)+floor(global.grid/2); my=(floor(mouse_y/global.grid)*global.grid)+floor(global.grid/2); var _break; _break=0; //---------- 이동 패스 구성 if move_on==0{ if pos.. 2023. 1. 18. (♡ )
[게임메이커 강좌-기타][GMS2]그리드 기반의 길찾기-4 응용편3 GAME MAKER 강좌 KAYAN ◈ 그리드 기반의 길찾기(Path finding) 응용편3 이번 강좌에서는 실시간으로 패스를 갱신하면서 이동하는 것을 구성해봅시다. 패스는 초기에 설정하고, 이동이 완료되거나 이동 위치를 변경하기 전까지는 유지되는 형태입니다. (▲ 패스 형태 유지) 이전 강좌에서는 이동하면서 패스를 갱신하는 방식이라 현재 위치에서 도착지점까지 경로가 약간 변경될 수 있었으나 이 방식은 패스를 처음 생성한대로 이동합니다. 먼저 룸 시작시 그리드와 패스를 만들어야 합니다. 그리드와 패스를 만들 오브젝트( obj_system )를 하나 추가하고 [Room Start 이벤트]를 추가합니다. //● obj_system - Room Start 이벤트 global.grid=32; global.mo.. 2023. 1. 13. (♡ )
[게임메이커 강좌-기타][GMS2]그리드 기반의 길찾기-3 응용편2 GAME MAKER 강좌 KAYAN ◈ 그리드 기반의 길찾기(Path finding) 응용편2 이번 강좌에서는 실시간으로 패스를 현재 위치에서 갱신하면서 이동하는 것을 구성해봅시다. (▲ 패스를 현재 위치에서 갱신) 이 방식은 패스를 오브젝트에서 단일 방식으로 공유하여 사용하지만, 패스를 실시간으로 갱신하는 유동적인 패스를 구성하기 때문에 패스를 사용하는 오브젝트를 여러 개를 동시에 이동시킬 수 있습니다. 먼저 룸 시작시 그리드와 패스를 만들어야 합니다. 그리드와 패스를 만들 오브젝트( obj_system )를 하나 추가하고 [Room Start 이벤트]를 추가합니다. //● obj_system - Room Start 이벤트 global.grid=32; global.move_grid=mp_grid_cre.. 2023. 1. 12. (♡ )