안드로이드 스튜디오 Libgdx object 클래스 만들기
안녕하세요..
오늘은 Libgdx object 클래스 만들기를 포스팅합니다.
object 클래스는 일종의 부모 클래스입니다.
이를 이용해 다양한 자식 클래스를 생성할 수 있습니다.
object라는 것은 말 그대로 모든 것을 포함할 수 있는 프로토 타입 같은 존재입니다.
결국 object는 아군 캐릭터, 적군 캐릭터, NPC, 배경 이미지의 돌, 나무 등등 모든 것이 될 수 있습니다.
예를 들어 아군 캐릭터, 적군 캐릭터, NPC, 돌, 나무 등의 공통점은 무엇일까요???
그것은 바로 게임 화면상에서 애니메이션을 한다는 것 입니다.
그렇다면 이 애니메이션 기능을 클래스화 시켜 아군, 적군, 나무, 돌, 등에 공통적으로 적용시킬 수 있습니다.
오늘은 애니메이션까지 구현하지 않을 것입니다. 다음 포스팅을 기대해 주세요.
일단은 이렇게 이 부모 클래스에서 나머지를 파생시켜 만들어 줍니다.
물론 이렇게 프로그램하지 않아도 충분히 구현은 가능합니다.
하지만 공통적으로 필요한 부분을 미리 부모 클래스에서 만들어 둔다면 각각의 클래스에서는 이를 따로 구현할 필요가 없을 것입니다.
이렇게 하면 각 클래스에서 코드에 필요한 부분만 구현하면 되므로 코드가 간단해집니다.
아래는 간단히 구현한 구조도 입니다.
아래는 현재 구현된 클래스입니다..
저번 포스팅에서 추가된 부분은 Enemy.java, Objet.java입니다.
코드 분석을 해보겠습니다.
- Object.java -
아래 Object 클래스에는 스프라이트 이미지 생성, 그리기, 메모리 해제 관련 메서드를 포함하고 있습니다.
Create 메서드에는 이미지의 크기, 이미지 파일 이름 을 포함하고 있습니다.
Render 메소드에는 이미지를 그리기 위해 batch, sprite를 인자로 받아 옵니다.
dispose 메소드에는 메모리를 해제합니다.
GetSprite 메서드에는 현재 스프라이트를 반환합니다.
- Enemy.java -
Enemy 클래스는 Object클래스로부터 모든 메서드와 변수를 상속받습니다.
아래는 상속받은 것을 그대로 사용할 뿐 어떤 구현도 하지 않았습니다.
- TowerDefense.java -
TowerDefense 클래스는 수정된 부분만 표시하였습니다..
수정되지 않은 나머지 코드는 이전 포스팅(타일 맵 프로그램)을 참조하세요.
아래와 같이 적군 클래스를 선언합니다.
아래와 같이 Create 메서드에 적군 클래스를 초기화합니다.
아래와 같이 Render 메서드에 적군 이미지를 그리기 합니다.
dispose메서드에 clsEnemy.dispose(batch)를 넣어 줍니다.
- TileMap.java -
TileMap클래스는 수정이 없으므로 이전 포스팅(타일 맵 프로그램)을 참조 바랍니다.
-실행화면-
실행화면은 아래와 같습니다.
이전 포스팅(타일 맵 프로그램)과 실행화면은 같습니다.
감사합니다..
도움이 되셨다면 댓글과 공감 부탁드립니다...
'프로그래밍 > 게임 프로그래밍(Libgdx)' 카테고리의 다른 글
안드로이드 스튜디오 Libgdx 스프라이트 애니메이션 (0) | 2021.01.11 |
---|---|
안드로이드 스튜디오 Libgdx 타일맵 프로그램 (3) | 2020.12.10 |
안드로이드 스튜디오 Libgdx 타일맵 구현 (1) | 2020.10.06 |
안드로이드 스튜디오 Libgdx 게임 화면 설정하기 (0) | 2020.10.04 |
안드로이드 스튜디오 Libgdx 초기 코드 분석 (0) | 2020.10.03 |
댓글