'iOS/Cocos2d Tutorials'에 해당되는 글 7건

  1. 2010.11.23 cocos2d 자꾸 깜박하는 것들;
  2. 2010.11.03 cocos2d SimpleAudioEngine
  3. 2010.10.24 메뉴 화면 만들기~!
  4. 2010.10.22 cocos2d 0.99.4 -> 0.99.5 beta3 로 버전 변경
  5. 2010.09.17 Hello World
  6. 2010.09.01 cocos2d setup guide
  7. 2010.08.31 Tutorials 포스팅 예정..


// 더 이상 사용되지않는 그래픽 캐시를 지운다.
[[CCTextureCache sharedTextureCache] removeUnusedTextures];

// CCSpriteSheet는 이미지 정보(OpenGL에서 쓰이는 texture)와 CCSprite를 담을 NSMutableArray를 멤버로 갖고 있다.
CCSprite *sprite = [CCSprite spriteWithTexture:sheet.texture rect:CGRectMake(0, 0, 90, 90)];
// 따라서 위와 같이 CCSpriteSheet의 texture 멤버 변수에 접근하면 texture를 받아올 수 있다.

[[CCDirector sharedDirector] pushScene];
// pushScene 이후 popScene을 할 경우, 최소한 하나 이상의 runningScene이 CCDirector에 남아 있어야 한다.
[[CCDirector sharedDirector] popScene];
// popScene 이후나 직전에는 더 이상 사용되지 않는 그래픽 캐시를 지워야 한다.
[[CCTextureCache sharedTextureCache] removeUnusedTextures];

// 각 Scene에서는 addChild를 통해 덮여진 tag가 있는 CCSpriteSheet들을 tag로 불러올 수 있다.
CCSpriteSheet *sheet = (CCSpriteSheet *)[self getChildByTag:kTagSpriteSheet];

// 뽑아온 CCSpriteSheet에서 또한 태그를 통해 CCSprite를 뽑아낼 수 있다.
CCSprite *sprite = (CCSprite *)[sheet getChildByTag:0];

'iOS > Cocos2d Tutorials' 카테고리의 다른 글

cocos2d SimpleAudioEngine  (0) 2010.11.03
메뉴 화면 만들기~!  (0) 2010.10.24
cocos2d 0.99.4 -> 0.99.5 beta3 로 버전 변경  (0) 2010.10.22
Hello World  (0) 2010.09.17
cocos2d setup guide  (0) 2010.09.01
Posted by 독뽀
,

속도 때문에 프리로드를 해주니 심플 오디오 엔진 로드 상태라 속도에 전혀 지장이 없었다..
글 올려주신 분께 감사 감사 ~_~

http://cultbrain.elogin.co.kr/dokuwiki/doku.php?id=programming:cocos2d:cocosdenshion#cocosdenshion_cookbook
(링크 깨짐...)

'iOS > Cocos2d Tutorials' 카테고리의 다른 글

cocos2d 자꾸 깜박하는 것들;  (0) 2010.11.23
메뉴 화면 만들기~!  (0) 2010.10.24
cocos2d 0.99.4 -> 0.99.5 beta3 로 버전 변경  (0) 2010.10.22
Hello World  (0) 2010.09.17
cocos2d setup guide  (0) 2010.09.01
Posted by 독뽀
,

지금 윈도우라서 스샷 없이 설명..

1. cocos2d application 생성
2. HelloWorldScene.h/.m 을 수정합시다.
3. .m의 초기화 구현부를 살펴봅니다.
- (id)init
{
if ( (self=[super init]) ) {
// 요기가 초기화 부분
}
return
self;
}

저 초기화 부분을 싸그리 지웁니다. 그러면 처음 생성했을 때 빌드 앤 런 후 생기는 Hello World 글자가 없어집니다.
백지, 아니 흑지 상태가 되지요(빈 화면)

4. 위의 주석 부분을 다음과 같이 채워넣습니다.

CCMenuItem *start = [CCMenuItemFont 어쩌구 저쩌구];      // 사이즈는 실행해가면서 원하는 크기로,.
// 글자체는 제가 선호하는건 Verdana -_-ㅋ;
CCMenuItem *help = [CCMenuItemFont 어쩌구 저쩌구];      // 위와 동일하게~
// CCMenuItemFont 는 클래스 메서드이기 때문에 릴리즈 책임이 없습니다.
CCMenu *menu = [CCMenu menuWithItems:start, help, nil]; // 배열 형식이기 때문에 마지막은 nil!

[menu alignItemsVertically];   // 메뉴를 세로로 정렬
                                           // 메뉴 사이에 간격을 두려면 [menu alignItemsVerticallyWithPadding:3]; 처럼 하시면 됩니다.
[self addChild:menu];           // 끝으로 자신의 노드에 붙입니다. 이 작업이 없으면 생성만 하고 안쓴 꼴

5. 끝으로 실행시키면 뭐 잘 동작하리라 봅니다.

위의 경우는 텍스트를 사용한 경우인데요, 본인이 이미지를 만들어서 할 경우에는
CCMenuItem 대신에
CCMenuItemImage 를 사용하면 됩니다.
물론 생성 메서드 또한 달라지긴 합니다만, 오토 컴플리션을 이용해서 손쉽게 해ㅋ결ㅋ
또한 앞선 예에서는 메뉴 클릭시 자동으로 확대 효과가 있습니다만 CCMenuItemImage에서는
두 개의 이미지가 필요합니다. 이미지 같은 경우 크기 효과보다는 다른 이미지가 낫겠죠?
(포지션이나 앞 뒤 순서 문제 등이 발생할 수 있기 때문에..)

위의 번호가 매겨진 내용들은 텍스트 기준으로 손쉽게 만드는 경우이구요,
이미지로 된 메뉴의 경우 공식 프로그래밍가이드에 나와있습니다.
http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:lesson_3._menus_and_scenes
참고하세요~

'iOS > Cocos2d Tutorials' 카테고리의 다른 글

cocos2d 자꾸 깜박하는 것들;  (0) 2010.11.23
cocos2d SimpleAudioEngine  (0) 2010.11.03
cocos2d 0.99.4 -> 0.99.5 beta3 로 버전 변경  (0) 2010.10.22
Hello World  (0) 2010.09.17
cocos2d setup guide  (0) 2010.09.01
Posted by 독뽀
,

최근 cocos2d 0.99.5 beta3 를 죽~ 훑어보니 레티나 디스플레이 지원과
여러 자잘한 클래스 변화가 있었습니다.
iOS 4.1 이상에서만 동작하기 때문에 Xcode 3.2.4 업그레이드 필수입니다.
특히 CCTouchDispatcher 요놈이 말썽인데.. 어떻게 해결할지 고민입니다..
제대로 임포트 되지 않고(Availability.h 문제인듯) 골치 썪는 중..

자잘한 문제들 해결 할 때까지 cocos2d 포스팅은 멈출듯.. (몇 개나 올렸다고.. ㅈㅅ;;)

해결.. 내가 생성한 .h 파일에 cocos2d.h 외에 <UIKit/UIKit.h> 임포트 하니 잘 된다 -_-
하지만 오토 컴플리션은 안된다 -_-.. 왜지???? 도대체 왜....

(추가)
태그를 달아놓고 필수로 구현해야되는 메서드도 안적어놔서 죄송합니다.

프로토콜 관련 내용 검색하시면 여러 정보들 나오는데요,
필수로 오버라이딩 해야되는 메서드가 있습니다. (안하면 빈 내용이라 에러)
그 외엔 선택적 요소들이기 때문에 해도 되고 안해도 됩니다.

필수 메서드는 - (BOOL)ccTouchBegan:(UITouch)touch ... 입니다.
터치를 뗄 때 반응하게 하고 싶으면 - (void)ccTouchEdned:(UITouch)touch.. 에 구현하면 되구요,
began의 return 값은 YES만 적어주면 됩니다. (구현 해야되므로)

그 외의 @optional 메서드는 - (void)ccTouchMoved:(UITouch)touch... 등이 있습니다.

CCTouchDispatcher 또한 CCDirector처럼 싱글톤 객체이기 때문에 클래스 메서드를 제공합니다.
따라서 CCDirector 처럼 (CCDirector:sharedDirector | CCTouchDispatcher:sharedDispatcher) 공용 디스패처를 사용면 됩니다.

터치를 사용할 레이어의 init 메서드 첫 줄에 아래와 같이 하면 터치에 반응하게 됩니다.
self.isTouchEnabled = YES;

터치를 사용할 메서드에는 아래와 같이 적어줍니다. (init 내부나 다른 곳에서나 싱글톤의 클래스 메서드라 상관 없습니다.)
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self ...];

지금 윈도우라서 Xcode 의 오토컴플리션을 사용할 수 없기 때문에 ... 으로 적어뒀습니다 양해부탁;

그럼 화이팅!

───────────────────────────────────────────────────────

같은 고민에 빠진 양키들 ㅋㅋㅋㅋㅋㅋㅋ
http://www.cocos2d-iphone.org/forum/topic/9773

'iOS > Cocos2d Tutorials' 카테고리의 다른 글

cocos2d SimpleAudioEngine  (0) 2010.11.03
메뉴 화면 만들기~!  (0) 2010.10.24
Hello World  (0) 2010.09.17
cocos2d setup guide  (0) 2010.09.01
Tutorials 포스팅 예정..  (0) 2010.08.31
Posted by 독뽀
,

Hello World

iOS/Cocos2d Tutorials 2010. 9. 17. 18:34

cocos2d 설치에 성공했다면 Xcode를 다시 실행시켜보자.

현재의 버전에서는(stable:0.99.4, beta:0.99.5) 다음과 같은 화면이 뜰 것이다.



세 가지 템플릿의 용도야 다르겠지? (아직 공부 안해서 모름 -_-;)
일단 cocos2d Application 한번 열어봅세!
프로젝트 명은 HelloWorld 로 뻔하게 했다.



뭐가 뭔진 모르겠지만 실행해보니 Hello World가 잘 뜬다!



그럼 소스를 슬슬 봐볼까..?

음.. 음..

"HelloWorldAppDelegate.m"


CCDirector 초기화 해주는 매크로가 보이고..
director를 사용하게 해주려고 공유하는 느낌의 생성도 보이고..
방향 설정이 보이고..
FPS 표시 한다는것도 보이고..
멀티 터치를 사용한다는 것도 보이고..
텍스쳐 포맷 설정도 보인다.

마지막에 보니 HelloWorld 인스턴스를 생성도 안하고 scene 호출을 하네!?
scene이 클래스 메소드인가보다..
그럼 HelloWorld 클래스에 scene이 구현이 되있나..?

오케이.. 상속받은 메서드를 그냥 썼던거였으면 귀찮게 찾을뻔 했지만.. 있다!

"HelloWorldScene.m"

CCScene 클래스로 scene 인스턴스 생성을 위해 CCScene 클래스의 node 호출하고..
HelloWorld 클래스로 layer 인스턴스 생성을 위해 HelloWorld 클래스의 node 호출하고..
마지막엔 scene에다가 layer를 갖다 붙이는군..

node는 뭐지?
뒤적거려보니 CCNode.m에 정의되있다는군.

오.. 찾았다..

"cocos2d Sources/cocos2d/CCNode.m"


뭐야 -_-; 그냥 초기화해서 autorelease pool에 등록만 시키네 -_-
일반적인 클래스 생성할 때 new에 autorelease만 추가한거구만?
흠.. 그럼 앞으로 CCScene 객체 생성할 때는 new 대신 node 쓰면 되겠군..
release도 안해도 되고 굿.

그럼 이제 HelloWorld 클래스 초기화는 어떻게 하나 볼까?
delegate에서는 Hello World라는 글자 입력도 없었으니까..

"HelloWorldScene.m"


Interface Builder를 사용안하니 수제로 만드네 -_-ㅋ
labelWithString: fontName: fontSize: 메서드로 문자열, 글자체, 크기까지 한방이군. 굿

postion은 위치 정하는 거겠고.. winSize랑 ccp 매크로 보니 size는 윈도우 사이즈 받아오는거군 -_-ㅋ

CCDirector는 책에서 보니 싱글톤 객체랜다. 한 앱에 하나밖에 없는.
더 유식하게 말하면 하나의 SandBox에 유일한 객체, NSNotification같은 놈인듯.
이름따라 Scene을 관리한다고 적혀있는걸 본것 같다!

마지막엔 Hello World 문자열이 글자체, 크기가 설정된 채로 가운데 위치한 Label을 자기 자신.. HelloWorld라는 이름의 Scene에 붙였다.

이걸로 HelloWorld 살펴보기는 끝 -_-
다음은 바로 메뉴 만들기 고곡

'iOS > Cocos2d Tutorials' 카테고리의 다른 글

cocos2d SimpleAudioEngine  (0) 2010.11.03
메뉴 화면 만들기~!  (0) 2010.10.24
cocos2d 0.99.4 -> 0.99.5 beta3 로 버전 변경  (0) 2010.10.22
cocos2d setup guide  (0) 2010.09.01
Tutorials 포스팅 예정..  (0) 2010.08.31
Posted by 독뽀
,


설치 페이지가 한글도 있는데 옛날꺼라서 귀찮지만 상세히 작성함..

당연히 맥 상에 iOS SDK & Xcode가 설치되어있다는 전제 하에 써내려갑니다.
먼저 cocos2d 홈페이지로 가봅시다.

URL : http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:index

위키답게 깔끔하니 곧바로 빨간 네모로 표시된 곳을 클릭


자.. 다음엔 필요한 파일들을 다운받아야겠죠.. 역시 빨간 네모의 링크 클릭


새 창이 로딩되었으면 홈페이지에 나와있듯이 Stable Version을 다운받습니다. (베타 써도 무방하나 안정된거 씁시다 좀..)



다운로드받았으면 이제 다운받은 파일을 더블클릭해서 압축을 해제합니다.
이제 터미널을 실행시켜서 해당 폴더로 이동합니다. 그리고 다음 명령어를 입력 후 엔터!
비밀번호 물으면 비밀번호 입력하시고, 설정한 적이 없으면 그냥 엔터!
(만약 한 번 설치한 적이 있어서 폴더가 있는 경우엔 끝에 -f 옵션을 붙여주고, 사용자 디렉토리에 풀고 싶으면 끝에 -u 옵션을 주면 됩니다..)

sudo ./install-templates.sh


설치가 끝나면 cocos2d 템플릿은 /Library/Application Support/Developer/Shared/Xcode 경로에.
샘플들은 다운받은 폴더에 설치됩니다.

그럼 이제 실행시켜봐야겠죠? 샘플이 있는 우리가 다운받은 폴더로 가서 cocos2d-iphone.xcodeproj 파일을 실행!
현재 상태에서 일단 전체 컴파일을 한 번 하고 필요한 샘플들을 실행시켜보기로 합시다. (Cmd+B)

시간이 꽤 걸리니 티 타임 ㄱㄱ..
에러나 워닝은 일단 무시하고(궁금하면 구글링 ㄱㄱ -_-;)
상단 메인 메뉴의 Project → Set Active Target 에서 원하는 예제를 선택하고 위 버튼 클릭! (혹은 Cmd+R)
실행 화면이 뜨나요!? 떴다면 이제부터 구글링과 함께 공부합시다~!

'iOS > Cocos2d Tutorials' 카테고리의 다른 글

cocos2d SimpleAudioEngine  (0) 2010.11.03
메뉴 화면 만들기~!  (0) 2010.10.24
cocos2d 0.99.4 -> 0.99.5 beta3 로 버전 변경  (0) 2010.10.22
Hello World  (0) 2010.09.17
Tutorials 포스팅 예정..  (0) 2010.08.31
Posted by 독뽀
,

Agenda


모바일 프로그래밍/게임 프로그래밍 두 과목 모두 iOS(cocos2d)용인데..
내용 봐서 너무 비슷하다 싶으면 하나는 Android로 바꾸던지 해서 올릴 예정 (9월 2일/3일 첫 수업)
예상컨데 첫 주라 O.T.만 하고 말듯, 3일에 교수님께 여쭤보고 결정!
수강 정정기간이 4일 자정까지니 5일까지는 결론이 날듯..


아마도 학교 수업 내용보다는 광범위 혹은 빠르게 다룰듯..

9월 2/3일 : 비슷한 내용인지 확인 후 수강 확정
9월 7/8일 : 포스팅 시작


포스팅 내용 : cocoa framework/cocos2d 또는 cocos2d/NDK


Comming soon!

포스팅 내용이 cocos2d 위주로 갈 듯..
cocoa framework 이하 UIKit 관련 자료들은 skill에서만 당분간 다룰 예정

'iOS > Cocos2d Tutorials' 카테고리의 다른 글

cocos2d SimpleAudioEngine  (0) 2010.11.03
메뉴 화면 만들기~!  (0) 2010.10.24
cocos2d 0.99.4 -> 0.99.5 beta3 로 버전 변경  (0) 2010.10.22
Hello World  (0) 2010.09.17
cocos2d setup guide  (0) 2010.09.01
Posted by 독뽀
,