달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

1) cmd에서 해당 프로젝트\proj.android 폴더로 이동 후 python build_native.py 실행

->C++ 컴파일 실행


2) eclipse에서 export 실행

 - Export Android Application


3) Keystore selection

 - 어플리케이션 사후 관리(업데이트, 패치 등)에 꼭 필요함

 - 까먹거나 날리지말고 잘 보관할 것

+ 버전업 할때, 프로젝트의 AndroidMenifest.xml 최상단에 있는

      android:versionCode="1"

      android:versionName="1.0"

여기 숫자들을 버전업과 함께 바꿔줘야 함. 같은 경우에는 같다고 등록이 안됨.




구글 플레이 개발자 가이드라인이 있으니 수시로 확인

:
Posted by 웽웽

1) 이클립스에서 import할때

3.2버전은 프로젝트만 import하면 에러가 떠있다. 이 에러를 없애주기 위해서 libcocos2dx 를 추가로 import해줘야 한다. 

3.3버전은 기본적으로 프로젝트에 저 라이브러리가 추가되어있기 때문에 따로 추가할 필요가 없다.



2) 프로젝트 생성 폴더

3.3버전에는 3.2버전에 없는 win8,1 폴더가 존재한다.



3) Android 포팅 시

3.2버전에서는 Android.mk파일에서 라이브러리, 소스파일들을 모두 따로 추가해줘야했다.

3.3버전에서는 소스파일만 추가해주면 된다.

:
Posted by 웽웽

- 참고 글

http://discuss.cocos2d-x.org/t/cocos3-0-tutorial-integrate-admob-google-play-services-with-cocos2d-x-v3-0-final/12798



- admob 사이트

https://apps.admob.com/#home



1) 프로젝트 폴더 내에서 python build_native.py 실행



2) eclipse에서 프로젝트 import

- 3.2 / 3.3 버전에서 프로젝트 import 차이점 확인


3) ADT 폴더 \sdk\extras\google\google_play_services\libproject 내에 있는

google-play-services_lib 폴더를 프로젝트 폴더 \proj.android 폴더에 복사



4) eclipse에서 복사한 google-play-services_lib을 import시킴



5) properties 에서 android -> add를 눌러 추가한 라이브러리를 더해줌



6) 프로젝트의 android manifest에 내용 추가



7) 프로젝트의 src->org.cocos2dx.cpp -> AppActivity.java 수정(전면 교체)

 본 내용 중 파란색으로 블럭표시된 곳에 광고 id를 삽입하면 된다.



8) 프로젝트 폴더의 win32 솔루션 실행 후, AdmobHelper.h와 AdmobHelper.cpp 추가 후, 아래 내용 붙여넣기



9) HelloWorldScene.cpp의 init부분 마지막에 코드 추가



10) eclipse에서, 프로젝트 폴더 내의 jni->Android.mk에 추가한 cpp파일을 등록해줌


:
Posted by 웽웽

1. cocos 3.2 에서 3.3rc 프로젝트 버전 변경하기

 - cocos 3.3rc 다운로드 (http://www.cocos2d-x.org/filedown/cocos2d-x-3.3rc2.zip)

 1) 3.3rc에서 프로젝트를 새로 생성한다.

 2) Classes 와 Resource 폴더를 복사한다.

 3) Classes 는 덮어씌우면 에러를 뿜어내므로, AppDelegate.cpp와 AppDelegate.h는 내용을 복붙한다.

     * 주의점!! AppDelegate 파일들의 추가된 내용이 있으니, 빠지면 에러를 뿜어낸다.

 4) 컴파일하여 확인하면 끝

- AppDelegate.h

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef  _APP_DELEGATE_H_
#define  _APP_DELEGATE_H_
 
#include "cocos2d.h"
class  AppDelegate : private cocos2d::Application
{
public:
    AppDelegate();
    virtual ~AppDelegate();
    virtual void initGLContextAttrs();        //3.3 에서 추가된 매소드
    virtual bool applicationDidFinishLaunching();
    virtual void applicationDidEnterBackground();
    virtual void applicationWillEnterForeground();
};
 
#endif // _APP_DELEGATE_H


- AppDelegate.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "AppDelegate.h"
#include "MenuScene.h"
#include "GameScene.h"
 
USING_NS_CC;
 
AppDelegate::AppDelegate() 
{
}
 
AppDelegate::~AppDelegate()
{
}
 
void AppDelegate::initGLContextAttrs()        //3.3 추가된 부분
{
    GLContextAttrs glContextAttrs = { 8, 8, 8, 8, 24, 8 };
    GLView::setGLContextAttrs(glContextAttrs);
}
 
 
bool AppDelegate::applicationDidFinishLaunching() {
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    if (!glview) {
        glview = GLViewImpl::createWithRect("My Game", Rect(0, 0, 320, 480));    //3.3 변경된 부분
        director->setOpenGLView(glview);
    }
    director->setDisplayStats(false);
    director->setAnimationInterval(1.0 / 60);
    auto scene = GameScene::createScene();
    director->runWithScene(scene);
    return true;
}
 
void AppDelegate::applicationDidEnterBackground() {
    Director::getInstance()->stopAnimation();
}
 
void AppDelegate::applicationWillEnterForeground() {
    Director::getInstance()->startAnimation();
}


2. 포팅 확인하기

 1) Android.mk 파일 복붙 필요 (관련 포스팅 http://genieker.tistory.com/61)

 2) cocos 3.2버전은 NDK r9d버전을 사용하지만, 3.3버전은 NDK r10c 이상의 버전이 필요하다. 

    (http://developer.android.com/tools/sdk/ndk/index.html)

 3) 적당한 곳에 압축해제

 4) 환경변수 변경

- 윈도우키 + pausebreak키 = 시스템->고급시스템설정-> 환경변수-> 사용자변수 -> NDK_ROOT를 아래 그림과 같이 수정

 5) cmd에서 cocos2d-x-3.3rc2 폴더로 이동하여 python setup.py 로 제대로 고쳐졌는지 확인

 6) 컴파일 실행하여 확인


3. 이클립스 디버깅

 1) 3.3에서는 해당 프로젝트만 import하고, 폰이라면 스마트폰 연결하고 실행하면된다. (관련 포스팅 http://genieker.tistory.com/61)



:
Posted by 웽웽

- cocos studio를 통해 만든 .csb 파일들을 로딩하여 사용할 경우,

같은 기능을 하는 코드와 비교했을 때 

1) vertex 수가 훨씬 작다.

2) draw call 수 또한 훨씬 작다.

즉, 이미 만들어진 하나의 파일을 노드로 사용하는 것이기 때문에 초반에 로딩은 조금 걸릴지언정, 실행 중에는 훨씬 성능적으로 개선된 것을 느낄 수 있다.



- 복잡한 애니메이션의 구현과 같은 경우는 코드로 구현하는 것보다 cocos studio의 time line을 이용한 애니메이션으로 구현하는 것이 훨씬 간편하고 직관적이다.



- texturePacker와 같이, 여러개의 그림파일을 용량이 적은 하나로 패킹해주는 기능을 지원한다.

(SpriteSheet를 이용하여 생성)

:
Posted by 웽웽



체크박스, 프로그레스바, 슬라이더, 파티클



사운드, 텍스트필드, 패널, 스크롤뷰, 페이지뷰




:
Posted by 웽웽


HelloWorldScene.h



HelloWorldScene.cpp



파일들


:
Posted by 웽웽

Setting

Cocos Studio 2.0.5

cocos2d-x 3.3버전 이상부터 적용 가능


1) 프로젝트 생성

Cocos Studio 프로젝트 생성시, Generate Cocos2d-x Project 체크하여 cocos프로젝트 생성 가능


2) 리소스 추가

리소스 추가는 프로젝트 화면 좌측 하단에 있는 Resources에서 추가한다.

마우스 우클릭 후 Import resources를 선택하여 추가하며, 이때 해당 프로젝트 내의 Resources 폴더를 추가하면 에러가 발생하기 때문에 필히 다른 이름의 폴더에 저장하여 추가하도록 한다.

이렇게 추가한 리소스들은 프로젝트 폴더 내에 cocosstudio에 복사됨.


파일 확장자별 설명

.ccs    : 프로젝트 파일

.ccd    : 작업 파일. 작업 기록이 남는 듯?

.ccb    : 실행파일(binary file). publish하면 res폴더 내에 생기게 됨

이 res폴더 내에 생긴 파일을 프로젝트 폴더 내의 Resources 폴더 내에 옮겨줌.

->VS에서 Cocos Studio를 import한 뒤, 이 파일들을 가지고 노드 형식으로 로드시켜 사용할수있다.



기본 예제

cocos studio에서 가장 기본인 MainScene을 간단히 만든 뒤, 저장하고 publish한다.

그러면 프로젝트 폴더 내에 res폴더가 생기는데, 여기에 생긴 파일을 모두 resources폴더로 복사.


HelloWorldScene.h


HelloWorldScene.cpp



- 버튼 추가 및 콜백 등록 / 태그로 불러와 수정하기 등 추가



:
Posted by 웽웽

HelloWorldScene.h


HelloWorldScene.cpp


파일


:
Posted by 웽웽

eclipse 실행

import -> cocos프로젝트 폴더 내의 proj.android  폴더 import


다시 impor -> 프로젝트 폴더 내의 cocos2d -> cocos -> platform -> android 폴더  import

:
Posted by 웽웽