32. 물리 엔진을 이용한 벽 만들기

0
(0)

이번 시간에는 물리 엔진을 이용해 벽을 만들어 보겠습니다.

이전까지 만들었던 타일 맵을 열고 Layer -> New -> Object Layer 를 선택하고 오브젝트의 이름은 ‘wall’ 로 합니다.

상단에서 오브젝트의 모양을 결정하고(여기서는 사각형) 벽에 해당하는 영역에 그려 줍니다. Ctrl 키를 이용하면 타일 사이즈에 딱 맞는 사각형을 만들 수 있습니다.

만든 타일맵 저장 후 에디터로 열어 타일셋 이미지의 경로와 wall 오브젝트에 타일맵의 가로, 세로 타일 갯수를 입력해 줍니다.

각 wall의 x, y, width, height는 정수 여야 합니다.(float일 경우 에러 발생하면서 화면이 정상적으로 표시 되지 않습니다.

onCreateScene() 메서드 안에 scene에 타일맵을 붙인 다음에 loadObject() 메서드를 만들고

loadObject() 메서드를 만들어 오브젝트의 이름이 wall이면 loadWallFromObjects()라는 메서드가 실행되도록 합니다.

loadWallFromObjects() 메서드를 위와 같이 작성해 줍니다.

scene에 추가된 모든 객체는 mEntityList에서 관리합니다. mEntityList에 값을 넣어 두면 findShape() 메서드에서 맵에 지정한 이름으로 오브젝트를 가져올 수 있습니다.

이전에 만들었던 showPlayer()(spawnPlayer에서 showPlayer로 변경) 메서드를 “player”라는 이름을 매개 변수로 던질 수 있게 변경 후 게임을 실행해 보면

이제는 플레이어가 나타난 후 더이상 아래로 떨어지는 않는 것을 확인하실 수 있습니다. 오히려 캐릭터가 공중으로 뜨는 현상이 있는데 이것은 다음 시간에 수정하도록하겠습니다.

안드로이드 스튜디오 소스

완성된 게임(Hammer King)

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

AhnDruid
Author: AhnDruid

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다