본문 바로가기

프로그래밍

(65)
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]; // 실패했을 경우 사용할 시스..
시스템 폰트로 점수와 라이프 표시하기 (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) CCTintBy 액션 클래스로 공격당한 주인공 스프라이트 색을 빨간색으로 변하게 만듬 (3) schedule을 이용하여 0.5초마다 새로운 적들을 생성 작업할 파일은 다음과 같습니다. (1) GameLayer.h (2) GameLayer.m (3) EnemySprite.h (4) EnemySprite.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 //}Enem..
캐릭터에 인공지능 추가하기 (클래스 이용한 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..