다루두루

블로그 이미지

차케요

공부하면서 정리하는 노트같은 블로그입니다.

안드로이드 게임 만들기

[안드로이드] 어플만들기/ 슈팅게임 만들기 2014. 1. 8. 15:17


 안드로이드 게임 만들기



■ 지난번까지 해서 플레이어의 비행기와 배경까지 만들어 봤으니 이번에는 적을 만들어 보겠습니다. 슈팅 게임에서 적의 종류가 하나이면 재미가 없을테니까요 3가지 종류의 적을 만들겠습니다. 


여러 적들의 슈퍼 클래스가 될 Enemy클래스를 작성하고, 애니메이션이 포함되어 있으니까  SpriteAnimation클래스를 상속 받겠습니다. 


 ■ 적들은 어떤 특징이 있을까요? 먼저 미사일 한방에 죽는 적도 있겠고, 그렇지 않는 적도 있을겁니다. 때문에 hp변수가 필요하고 종류별로 이동 속도를 다를 수 있으니 speed변수도 필요할것입니다. 그리고 적의 행동을 보면 미사일을 발사하고 각자 움직이는 패턴이 다를 것입니다. 이런 내용들을 참고해서 변수를 선언하고 메서드를 만들겠습니다. 



  ■ 적들이 상속받아서 사용할 클래스의 틀이 갖춰진것 같네요. 이제 적들을 종류별로 구현해 보겠습니다. 세가지 종류로 만들었구요. 


■ 노란색은 체력이 약한 대신 이동속도를 빠르게 하고 녹색은 체력은 보통이고 이동 속도가 느립니다. 보라색은 체력은 강하고 이동속도는 매우 느리게 설정하겠습니다. 


이와같은 설정을 토대로 적 클래스를 제작하겠습니다. Enemy 1 ~3번으로 만들겠습니다.

첫번째 클래스를 만들어서 기본으로 사용할 이미지가 정해져 있으니 비트멥을 인자로 받을 필요없이 생성자에서 비트맵을 불러와서 넘겨주고 hp와 speed수치를 지정해줍니다. 다음으로 스프라이트 애니메이션에서 기본적인 정보를 설정하는 InitSpriteData메서드를 호출해서 적 캐릭터의 기본 스프라이트 애니메이션 정보를 넣어줍니다. 또한 Updage(long)메서드를 상속받아서 제작합니다. 


■ 이제 GameState클래스에서 이 클래스를 추가해서 화면에 나타나게 해줍니다. 



■ 여기까지 하고 게임을 실행을 해보겠습니다. 



■ 이제 적의 이동을 처리 해보겠습니다. 적은 아래쪽으로 이동하는데 같은 패턴으로 이동하면 밋밋하니까요. 내려오다가 (1)어느 지점부터 갑자기 빨라진다거나, 직선으로 내려오다가 어느 지점부터 대각선방향으로 (2)오른쪽, (3)왼쪽으로 움직이게 해보겠습니다. 


■ 이처럼 세가지 패턴을 상수로 만들어서 슈퍼클래스인 Enemy에 패턴 종류를 담을 멤버 변수를 추가하고 Move()메서드에 이동패턴에 따른 움직임을 구현하겠습니다. 

■ 이제 적의 이동 패턴을 구현해 보겠습니다. 구현할 패턴을 살펴보면 모두 중간지점을 기준으로 이동방식이 변하게 되는데요.  화면 길이의 1/2지점에서 패턴이 변하게 합니다. 지금 현재 사용중인 AVD의 화면의 길이가 800이므로 400지점에서 패턴이 바뀌도록 설정해 보겠습니다.


 

■ 위와 같이 작성을 하고 Enemy의  Update메서드에서 Move()메서드를 호출합니다.


■  이제 Enemy1클래스의 생성자에서 movetype을 바꿔가면서 하나씩 테스트를 해보겠습니다. 



■ 실행을 해보면 세가지 패턴다 정상적으로 작동이 됩니다. 아래 동영상은  내려오다가 일정한 구간에서 오른쪽 대각선으로 이동하는 두번째 패턴을 구현한 것입니다. 



■ 컴퓨터가 사양이 좀 딸리다보니 AVD가 너무 느리게 반응을 해서 핸드폰으로 테스트를 하는데....AVD와 핸드폰 좌표값도 다르고 속도도 다르고 해서  동영상이 속도가 좀 느리고 답답해도 이해해 주세요^^;;

저작자표시 비영리 변경금지 (새창열림)
Posted by 차케요

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

카테고리

NEW (900)
아이폰 개발 기초 (7)
취미 (16)
아두이노 (16)
[안드로이드] 어플만들기 (77)
안드로이드 기초 다지기 (61)
슈팅게임 만들기 (4)
[JAVA]자바 공부하기 (48)
C언어 알고리즘 (61)
[Unity3D]유니티3D 강좌 (7)
컴퓨터 (325)
포토샵CS2 강좌 (6)
유용한 프로그램 (244)
리눅스 노트정리 (22)
임베디드 리눅스 (11)
New블로그 (9)
음식의 효능 (4)
일반상식 (56)
HTML 공부 (40)
포토샵 공부 (36)
엑셀 (6)
파워포인트 공부 (19)
노트정리 (38)
일상 (33)
TV영화 (85)
방명록 : 관리자 : 글쓰기
차케요's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

다루두루

공부하면서 정리하는 노트같은 블로그입니다.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • NEW (900)
    • 아이폰 개발 기초 (7)
    • 취미 (16)
      • 아두이노 (16)
    • [안드로이드] 어플만들기 (77)
      • 안드로이드 기초 다지기 (61)
      • 슈팅게임 만들기 (4)
    • [JAVA]자바 공부하기 (48)
    • C언어 알고리즘 (61)
    • [Unity3D]유니티3D 강좌 (7)
    • 컴퓨터 (325)
      • 포토샵CS2 강좌 (6)
      • 유용한 프로그램 (244)
    • 리눅스 노트정리 (22)
      • 임베디드 리눅스 (11)
    • New블로그 (9)
    • 음식의 효능 (4)
    • 일반상식 (56)
    • HTML 공부 (40)
    • 포토샵 공부 (36)
    • 엑셀 (6)
    • 파워포인트 공부 (19)
    • 노트정리 (38)
    • 일상 (33)
    • TV영화 (85)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바