본문 바로가기

프로그래밍/cocos2d

(20)
저장된 게임 데이터로 게임 화면 재구성하기 로직을 간단히 나타내면 다음과 같습니다. 게임 데이터가 있는가? 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..
NSKeyedArchiver로 게임 데이터를 파일에 저장하기 디바이스에서 애플리케이션이 실행되는 중에 홈 버튼이 눌리거나 걸려온 전화를 받으면 실행중인 애플리케이션은 중지 됩니다. 이때, AppDelegate 클래스의 3.x -> - (void)applicationWillTerminate:(UIApplication *)application {} 4.x -> - (void)applicationDidEnterBackground:(UIApplication *)application {} 메서드가 호출 됩니다. 이 메서드에서 게임 데이터를 저장하는 방법을 학습합니다. 어떤 데이터를 저장해야 할까요? 1. 주인공 (1)현재 좌표 (2)방향 (3)에너지 값 2. 적 (1)현재 좌표 (2)방향 (3)걷는 속도 3. 기타 (1)라이프 수 (2)현재 점수 작업할 파일은 다음과 같습..
cocos2d와 UIView로 게임 일시정지/플레이 구현하기 cocos2d와 UIView를 함께 사용하는 방법을 학습합니다. 작업 할 파일은 다음과 같습니다. (1) GameResumeViewController.xib (2) GameResumeViewController.h (3) GameResumeViewController.m (4) GameDemoAppDelegate.h (5) GameDemoAppDelegate.m (6) GameLayer.h (7) GameLayer.m // // GameResumeViewController.h // GameDemo // // Created by Chang-Min Pak on 6/15/10. // Copyright 2010 thefirstgood.com. All rights reserved. // #import @class G..
CCDirector와 CCMenu로 게임 일시정지/플레이 구현하기 게임에서 일시정지와 이어서 하기를 구현하는 방법을 학습합니다. 작업할 파일은 다음과 같습니다. (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 }FallDirection; // 현재 게임 진행 상황 typedef enum { kGamePlaying, kGamePaused }GameStatus; @class EnergyBar; @interface Game..
AVAudioPlayer로 배경 음악 재생하기 (싱글톤 사용) 작업할 파일은 다음과 같습니다. (1) AudioPlayer.h (2) AudioPlayer.m (3) GameLayer.m // // AudioPlayer.h // GameDemo // // Created by Chang-Min Pak on 6/12/10. // Copyright 2010 thefirstgoodcom. All rights reserved. // #import #import typedef enum { kAudio_Background } AudioPlayerType; @interface AudioPlayer : NSObject { AVAudioPlayer *backgroundAudioPlayer; } @property (nonatomic, retain) AVAudioPlayer *backg..
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..
OpenGL 선 그리기 API로 에너지 바 만들기 작업 할 파일은 다음과 같습니다. (1) EnergyBar.h (2) EnergyBar.m (3) GameLayer.h (4) GameLayer.m // // EnergyBar.h // GameDemo // // Created by Chang-Min Pak on 6/12/10. // Copyright 2010 thefirstgood.com. All rights reserved. // //#import #import "cocos2d.h" //@interface EnergyBar : NSObject { @interface EnergyBar : CCNode { CGFloat maxValue; CGFloat curValue; CGSize maxSize; // 에너지 바의 픽셀 크기 } - (id) initWit..
트루타입 글꼴로 CCLabelTTF 만들기 .ttf 확장자를 가진 폰트 파일을 리소스 폴더에 추가시킵니다. .ttf 비트맵 폰트를 만들려면 Hiero 란 프로그램을 다운 받습니다. (구글에서 검색해서 다운받으세요.) #import "FontManager.h" - (void) createLabels { // FontManager를 이용하여 번들(bundle)에서 폰트를 읽어들입니다. // loadFont메소드는 성공할 경우 YES를 그렇지 않을 경우 NO를 돌려줍니다. NSString *fontName = [NSString stringWithString:@"Apple Chancery.ttf"]; BOOL wasSucceeded = [[FontManager sharedManager] loadFont:fontName]; // 실패했을 경우 사용할 시스..