cocos2d 37

드래곤 플라이트 따라 만들기 - 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)

드래곤 플라이트 따라 만들기 - 0. 준비편

이 연재글은 필자의 심심함에 따라 작성되고 있는 글입니다. 좀 늦어질 수도 있습니다. 그리고 코드의 내용이 개판일 수도 있으니 나름 유념하고 봐주세요. 소스는 나중에 한 번에 통짜로 github에 올릴테니 버그, 수정 사항이 있으면 알려주시면 반영 하도록 하겠습니다.만들고 라인수를 살펴보니 주석포함 1200 라인정도 밖에 안되네요. 정말 아무나 할 수 있습니다. 이번화는 본론에 들어가기에 앞서서 기본 적인 준비를 위해서 작성 하도록 한다. 준비물cocos2d로 게임을 만드는데 필요한 도구들을 알아보도록 하자. 아래 목록만 있으면 충분히 만들 수가 있다.- Xcode를 돌릴 Mac 한 대. (누가 레티나 맥북 프로 한 대 줬으면 좋겠다. :] )- iOS 기기 (누가 iPhone 5 한 대 줬으면 좋겠다...

iDev/Cocos2D 2013.01.13 (3)

cocos2d 배경화면 무제한 스크롤링 하기

동일한 이미지 한 장을 사용해서 무제한으로 도는 것 처럼 보이게 만들 것이다. Note:`CCParallaxNode`를 사용하면 배경화면을 마치 달리는 기차에서 창 밖을 바라보면 가까이 있는 것은 빠르게 움직이고 멀리있는 것은 느리게 움직이는 효과를 줄 수 있다. header 파일에 아래 프로퍼티를 추가한다. @property (nonatomic, weak) CCSprite *backgroundImage1; @property (nonatomic, weak) CCSprite *backgroundImage2; implement 파일에 아래 코드를 추가한다. - (void)initBackground{ //배경에 사용할 1번 이미지를 생성 후, 화면에 꽉 차게 이동 시킨다. _backgroundImage1 = ..

iDev/Cocos2D 2013.01.13 (1)