iDev/Cocos2D 41

드래곤 플라이트 따라 만들기 - 10. 배경음악과 사운드 효과음

게임에 있어서 가장 중요한 것들 하나가 배경음악이라고 생각이 든다. 애니팡도 그렇고 드래곤 플라이트도 그렇고 단순하면서 반복적인 배경음악이 게임에 몰입을 하고 중독을 일으키게 할 만큼 엄청나게 중요하다. 이번 파트에서는 배경음악과 사운드 효과의 재생을 구현해 보도록 하자. 배경음악과 사운드 효과cocos2d에서 배경음악과 사운드 효과는 SimpleAuidoEngine을 사용한다. 즉각 즉각 필요할 때 마다 메모리에 올려서 재생을 해도 상관은 없지만, 사운드의 경우에는 용량도 크고 해서 게임 시점에 메모리에 올릴경우 지연이 발생한다. 그래서 게임 초반에 preload를 사용하여 미리 메모리에 올려 놓고 필요할 때는 재생만 해서 사용한다. mp3, wav 등 다양한 형식의 음악 파일을 지원한다. 단, 너무 ..

iDev/Cocos2D 2013.02.12 (6)

드래곤 플라이트 따라 만들기 - 9. 폭발 효과 애니메이션

폭발 효과 에니매이션 총알에 맞은 적 또는 플레이어 케릭터가 적과 충돌할 경우에 폭발하는 애니메이션이 보이게 된다. cocos2d에서 제공하는 파티클을 사용하여서 폭발하는 효과를 더 현실감 있고 화려하게 구현 하는 방법도 있다. 이 튜토리얼에서는 한두가지의 이미지로 폭발 파티클 효과를 비슷하게 구현하도록 하겠다. 폭발 스프라이트 애니메이션을구현 하기 위해서 CCSprite를 상속 받아서 Dust 라는 이름으로 클래스를 만든다. Dust.h 로 이동하여 아래 코드를 추가한다. @interface Dust : CCSprite { CCArray *dusts; CCArray *explosions;} @property (nonatomic, weak) CCSpriteBatchNode *batch; -(void)an..

iDev/Cocos2D 2013.02.12

드래곤 플라이트 따라 만들기 - 8. Head-up Display

HUD (Head-up Display) 대부분 게임에는 시간이나 점수를 보여주는 HUD가 있다. 우리 게임에도 간단하게 HUD를 추가하도록 하자. 단순하게 움직인 거리를 나타내는 것만 표시할 것이다. 적을 죽여서 점수에 반영하는 것은 숙제로 남기기로 하겠다. 우선 CCLayer를 상속받아서 HUDLayer이름으로 클래스 하나를 생성한다. 그리고 HUDLayer.h에 아래 코드와 같이 작성한다. @interface HUDLayer : CCLayer { CCLabelTTF *scoreLabel;} -(void)setScoreText:(int)score; 점수(거리)를 보여주는 Label을 인스턴스 변수로 추가한다. 그리고 외부에서 점수를 메시지로 보낼 수 있도록 메소드를 하나 생성한다. HUDLayer.m으..

iDev/Cocos2D 2013.02.09 (2)

드래곤 플라이트 따라 만들기 - 7. 날갯짓 애니메이션

기본적인 게임 기능은 다 구현되었지만 밋밋한 화면을 역동적으로 하기 위해서 애니메이션을 추가하도록 하겠다. 이번 장에서는 플레이어와 적의 날갯짓 애니메이션을 구현하겠다. 날갯짓 애니메이션적의 날갯짓을 하기 위해서는 기본적인 날개 스프라이트를 왼쪽 날개는 오른쪽에 오른쪽 날개는 왼쪽에 축을 두고 위아래로 살짝씩만 회전을 하면 된다. 우선 enemy.h 로 이동을 해서 아래 코드를 변수로 추가한다. BOOL wingDown;날개가 내려갔는지 올라갔는지를 체크하기 위한 변수이다. 그리고 본격적으로 애니메이션을 구현하기 위해 enemy.m 파일로 이동한다. 특정 시간마다 반복적으로 메소드를 호출해야 하기때문에 스케쥴러를 위한 메소드 -(void)updateWings:(ccTime)dt 를 하나 만들어 아래와 같..

iDev/Cocos2D 2013.02.05 (1)

드래곤 플라이트 따라 만들기 - 6. 충돌 처리 및 적 게이지

이번 파트에서는 총알과 플레이어 충돌, 적과 플레이어 충돌 그리고 적의 에너지 게이지 추가를 구현하겠다. 총알과 플레이어 케릭터 충돌처리 총알과 플레이어 케릭터의 충돌처리는 아주 간단하다. 플레이어 스프라이트의 바운딩 박스 영역과 총알 스프라이트의 바운딩 박스의 영역이 겹치면 충돌했다고 처리하면 된다. 물론 더 세세한 충돌처리를 위해서는 케릭터의 모양을 여러 개의 영역으로 나눠서 충돌했는지를 체크하거나, 더 정확하게 하려면 플레이어 케릭트 외곽선을 전부 따서 하는 방법도 있다. 여러가지 방법이 있긴 하지만 가장 간단한 방법을 선택하도록 한다. gameLayer.h 에 이동하여 충돌하였는지를 체크 할수 있게 변수하나를 추가한다. BOOL isCollision; 충돌 처리를 위해서 gameLayer.m으로 ..

iDev/Cocos2D 2013.01.31

드래곤 플라이트 따라 만들기 - 5. 총알 추가

이번 파트에서는 총알을 생성하고 총알과 적의 충돌처리 하는 것을 구현하겠다. 총알 추가플레이어 케릭터에서는 특별한 액션이 필요하지 않고 끊임없이 총알이 발사 된다. 레벨에 따라서 총알의 모양, 강도만 다를 뿐이다. 총알 스프라이트를 구현하기 위해서 Bullet 스프라이트를 CCSprite를 상속받아서 생성한다. 그리고 Bullet.h 이동한다. 아래 코드를 추가한다. //총알의 종류와 강도typedef enum { //총알의 강도를 나타낸다. kFirst = 20} BulletType; @interface Bullet : CCSprite {} @property (nonatomic, readwrite) BulletType bulletType;총알의 종류와 강도를 나타내는 변수와 총알 타입을 설정 할 수 있..

iDev/Cocos2D 2013.01.29 (2)

드래곤 플라이트 따라 만들기 - 4. 적 케릭터

* 혹시 안되는것이 있거나 하면 바로 리플로 알려주세요. 구현하면서 글을 작성해야 좋은데, 구현 해놓고 역으로 글을 쓰니까 코드가 살짝 꼬이는것이 있네요. 생각하면서 작성을 하고 있긴 하지만 이상한 곳이 많을 것 같습니다. 이번 파트에서는 적 케릭터를 추가하고 적이 없어지고 다시 생성되는 것을 구현하겠다. 적 케릭터 만들기 드래곤 플라이트에서 적은 적의 레벨에 따라서 여러 종류의 색상으로 달라진다. 하얀색이 약한 놈, 노란색은 조금더 강한 놈 ... 점점 강하게 된다. 적의 스프라이트를 상세하게 분석하면 몸통, 기본과 공격 받을때가 달라지는 양쪽 눈, 날개 짓 하는 양쪽 날개 그리고 에너지 상태를 나타내는 에너지 바로 구분 할 수 있다. 그리고 다섯 마리의 적들이 한 줄로 나란하게 나온다. 아래로 움직여..

iDev/Cocos2D 2013.01.24 (6)

드래곤 플라이트 따라 만들기 - 3. 플레이어 케릭터

이번 파트에서는 플레이어 케릭터를 추가하고, 터치입력을 받아서 좌우로 움직이는 것을 다루겠다. 스프라이트 시트 게임에서는 많은 스프라이트 이미지들이 사용된다. 아무것도 몰랐을 때는 이미지 한 장, 한 장을 불러서 사용했다. 물론 그렇게 해도 가벼운 게임에는 큰 문제가 없다. 아무리 작은 이미지라도 한 장이 차지 하는 최소 공간이 있다고 한다. (정확하게는 잘 모르겠다) 그래서 작은 이미지를 여러장 따로 불러 쓰면 필요 없는 공간이 많이 지므로 효율성도 떨어진다고 한다. 그래서 게임에는 작은 이미지 파일을 통짜로 묶은 스프라이트 시트를 사용한다. 예를 들면 드래곤 라이드에서 사용한 이미지 시트는 아래 그림과 같다. 그림은 한 장이지만, plist 파일로 각각 스프라이트의 이미지 정보를 담고 있다. 개발자가..

iDev/Cocos2D 2013.01.16 (1)

드래곤 플라이트 따라 만들기 - 2. GameScene 기본과 배경화면 스크롤

이 연재글은 필자의 심심함에 따라 작성되고 있는 글입니다. 좀 늦어질 수도 있습니다. 그리고 코드의 내용이 개판일 수도 있으니 나름 유념하고 봐주세요. 소스는 나중에 한 번에 통짜로 github에 올릴테니 버그, 수정 사항이 있으면 알려주시면 반영 하도록 하겠습니다.만들고 라인수를 살펴보니 주석포함 1200 라인정도 밖에 안되네요. 정말 아무나 할 수 있습니다. 본 글과 소스의 라이센스는 '만나면 커피 한잔 사주기' 라이센스 입니다. 쿨럭. GameScene 만들기 이전에는 Layer에 Scene을 클래스 메소드를 사용하여 생성하였지만, Scene 하위에 다수의 레이어를 자식노드로 추가하기 위해서 CCScene을 상속받아서 Scene을 만들도록 하자. Cmd(⌘) + N으로 새로운 파일을 추가 한다. C..

iDev/Cocos2D 2013.01.15 (1)

드래곤 플라이트 따라 만들기 - 1. 메뉴와 화면모드

이 연재글은 필자의 심심함에 따라 작성되고 있는 글입니다. 좀 늦어질 수도 있습니다. 그리고 코드의 내용이 개판일 수도 있으니 나름 유념하고 봐주세요. 소스는 나중에 한 번에 통짜로 github에 올릴테니 버그, 수정 사항이 있으면 알려주시면 반영 하도록 하겠습니다.만들고 라인수를 살펴보니 주석포함 1200 라인정도 밖에 안되네요. 정말 아무나 할 수 있습니다. 본 글과 소스의 라이센스는 '만나면 커피 한잔 사주기' 라이센스 입니다. 쿨럭. 지난번에는 게임 개발의 환경 구성을 하였다. 이번 장에서는 본론으로 들어갈려고 했으나 게임의 가장 중요한 부분인 메뉴 화면을 구성을 할 것이다. 그리고 화면모드 변경에 대해서도 설명을 할 것이다. :-) 메뉴 화면게임을 시작 하면 대부분의 게임은 메뉴로 시작한다. 단..

iDev/Cocos2D 2013.01.14 (4)