본문 바로가기

Cocos2d

(13)
저장된 게임 데이터로 게임 화면 재구성하기 로직을 간단히 나타내면 다음과 같습니다. 게임 데이터가 있는가? 1. 있다 (1) MenuScene : RESUME 버튼(CCMenuItem)을 활성화시킨다. (2) GameScene : 저장된 게임 데이터를 읽어들여 게임 화면을 재구성한 후 게임을 일시정지 상태로 전환하여 플레이어가 화면을 터치하면 게임이 시작된다. 2. 없다 (1) MenuScene : RESUME 버튼을 비활성화시킨다. (2) GameScene : 새로운 게임을 시작한다. 작업할 파일은 다음과 같습니다. 1. 새로 추가할 파일 (1) MenuScene.h (2) MenuScene.m 2, 수정할 파일 (1) GameScene.h (2) GameScene.m (3) GameLayer.h (4) GameLayer.m (5) GameDe..
AudioToolbox를 이용하여 효과음 내기 (Singleton 사용) 작업 할 파일은 다음과 같습니다. (1) SoundManager.h (2) SoundManager.m (3) GameLayer.m // // SoundManager.h // GameDemo // // Created by Chang-Min Pak on 6/12/10. // Copyright 2010 thefirstgood.com. All rights reserved. // #import #import @interface SoundManager : NSObject { // 만들어진 SystemSoundID를 재사용하기 위해 보관할 dictionary NSMutableDictionary *soundIDDic; } @property (nonatomic, retain) NSMutableDictionary *sou..
시스템 폰트로 점수와 라이프 표시하기 (CCLabelTTF 사용) 작업할 파일은 다음과 같습니다. (1) GameLayer.h (2) GameLayer.m // // GameLayer.h // GameDemo // // Created by cmpak on 5/10/10. // Copyright 2010 thefirstgood.com. All rights reserved. // #import "cocos2d.h" // 적이 쓰러질 방향 typedef enum { kFallRight, kFallLeft //}EnemyFallDirection; }FallDirection; @interface GameLayer : CCLayer { CGSize winSize; // 방향 전환에 쓰일 버튼 // 눌리기 전과 눌렸을 때에 쓸 수 있도록 각 방향별로 두개씩 만든다. CCSprite..
캐릭터에 인공지능 추가하기 (클래스 이용한 CCSprite 생성 및 각각의 애니메이션 적용) 1. 주인공의 위치를 확인한다. 2. 적과 주인공의 거리를 계산한다. 3. 공격할 수 있을 만큼 가까운 거리가 아니면 주인공 쪽으로 이동한다. 4. 공격할 수 있을 만큼 가까운 거리면 공격을 시도한다. 작업할 파일은 다음과 같습니다. (1) EnemySprite.h (2) EnemySprite.m (3) GameLayer.m // // EnemySprite.h // GameDemo // // Created by Chang-Min Pak on 6/2/10. // Copyright 2010 thefirstgood.com. All rights reserved. // //#import #import "cocos2d.h" @class GameLayer; //@interface EnemySprite : NSObje..
스프라이트 동적으로 생성하고 삭제하기 // // GameLayer.h // GameDemo // // Created by cmpak on 5/10/10. // Copyright 2010 thefirstgood.com. All rights reserved. // #import "cocos2d.h" // 적이 쓰러질 방향 typedef enum { kFallRight, kFallLeft }EnemyFallDirection; @interface GameLayer : CCLayer { CGSize winSize; // 방향 전환에 쓰일 버튼 // 눌리기 전과 눌렸을 때에 쓸 수 있도록 각 방향별로 두개씩 만든다. CCSprite *rightSprite; CCSprite *rightPressedSprite; CCSprite *leftSprite; C..
animation이 적용된 sprite 여러개 생성하기 // // GameLayer.h // GameDemo // // Created by cmpak on 5/10/10. // Copyright 2010 thefirstgood.com. All rights reserved. // #import "cocos2d.h" @interface GameLayer : CCLayer { CGSize winSize; // 방향 전환에 쓰일 버튼 // 눌리기 전과 눌렸을 때에 쓸 수 있도록 각 방향별로 두개씩 만든다. CCSprite *rightSprite; CCSprite *rightPressedSprite; CCSprite *leftSprite; CCSprite *leftPressedSprite; // 발차기 버튼 CCSprite *kickSprite; CCSprite *k..
CCAnimate (2) - (void) createPrinceAndAnimation { // 위치정보 파일을 읽어들여 바로 CCSpriteFrame을 만들어 캐시에 저장합니다. [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"prince_walk_trim.plist"]; // 프레임을 담을 Array를 만듭니다. NSMutableArray *aniFrames = [NSMutableArray array]; // 아주 간단히 프레임을 만들어 배열에 저장할 수 있습니다. 스프라이트 시트를 만들 때 사용된 // 개별 이미지의 파일 이름을 사용하여 개별 프레임을 읽어들입니다. for(NSInteger idx = 1; idx
CCAnimate 애니메이션 구현하기 스프라이트 애니메이션을 적용해 캐릭터가 걸어 다니게 만듭니다. // // GameLayer.h // GameDemo // // Created by cmpak on 5/10/10. // Copyright 2010 thefirstgood.com. All rights reserved. // #import "cocos2d.h" @interface GameLayer : CCLayer { CGSize winSize; // 방향 전환에 쓰일 버튼 // 눌리기 전과 눌렸을 때에 쓸 수 있도록 각 방향별로 두개씩 만든다. CCSprite *rightSprite; CCSprite *rightPressedSprite; CCSprite *leftSprite; CCSprite *leftPressedSprite; BOOL isL..