'Dev/Info/Cocos2DX'에 해당되는 글 3건

  1. [cocos2d-x] 2.Start
  2. [cocos2d-x] 목차
  3. [cocos2d-x] 1.Install & Setting

[cocos2d-x] 2.Start

2.Cocos2D-X Start

지난 시간에는 Cocos2D-X의 설치와 프로젝트 생성에 대해서 알아보았다…
너무 어렵고 복잡하게 설명한게 아닌가 걱정도 되지만….@_@;;; 일단 그대로 진행하겠다.




프로젝트가 생성되고나면 그 다음부터는 아주 간단하다.
그냥 프로젝트를 불러오고 빌드만 해주면 끝!!



하지만, 지난번에 빠진 내용이 있어서 추가해보도록 하겠다.
지난번에 수정한 create_project.py를 가지고 프로젝트를 생성하면 IOS는 바로 빌드가 되지만, Android는 이런저런 설정을 추가로 잡아줘야 빌드가 가능하다… OTL…


뭔가 이런느낌.....언제 끝나....지..?


역시 그때그때 설정을 잡는것보다 한번에 끝내버리자….
지난번에 수정했던 create_project.py를 열고 144번째 줄에 다음과 같이 스크립트 코드를 추가하자.


    src = “.classpath”
    if (os.path.exists(proj_path + src) == True):
       replaceString(proj_path + src, “classpath”,
         """ <classpathentry kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES">
             <classpathentry kind="src" path="cocos2dx-src">
         """)

    src = ".cproject"
    if (os.path.exists(proj_path + src) == True):
        replaceString(proj_path + src, "${ProjDirPath}/../../..", os.environ['COCOS2DX_ROOT'])
        replaceString(proj_path + src, context["src_project_name"], context["dst_project_name"])

    src = ".project"
    if (os.path.exists(proj_path + src) == True):
        replaceString(proj_path + src, "COCOS2DX/projects/" + context["src_project_name"] + "/Classes", "$%7BPARENT-1-PROJECT_LOC%7D/Classes")
        replaceString(proj_path + src, "</linkedResources>", 
            """ <link>
                    <name>cocos2dx-src</name>
                    <type>2</type>
                    <location>/Users/jhkang/sdks/cocos2d-x-2.2.0/cocos2dx/platform/android/java/src</location>
                </link> 
                <link>
                    <name>Resources</name>
                    <type>2</type>
                    <location>$%7BPARENT-1-PROJECT_LOC%7D/Resources</location>
                </link> 
            </linkedResources>""")
        replaceString(proj_path + src, "COCOS2DX/cocos2dx", os.environ['COCOS2DX_ROOT'] + "/cocos2dx")
        replaceString(proj_path + src, "COCOS2DX/extensions", os.environ['COCOS2DX_ROOT'] + "/external")
        replaceString(proj_path + src, "COCOS2DX/scripting", os.environ['COCOS2DX_ROOT'] + "/scripting")

    src = "project.properties"
    if (os.path.exists(proj_path + src) == True):
        replaceString(proj_path + src, "../../../cocos2dx", os.environ['COCOS2DX_ROOT'] + "/cocos2dx")

    os.mkdir(proj_path + '.settings')
    setting_f = file(proj_path + '.settings/org.eclipse.cdt.core.prefs', 'a+')
    setting_f.write("""
        eclipse.preferences.version=1
        environment/project/0.756827735/COCOS2DX_ROOT/delimiter=\:
        environment/project/0.756827735/COCOS2DX_ROOT/operation=append
        environment/project/0.756827735/COCOS2DX_ROOT/value=""" + os.environ['COCOS2DX_ROOT'] + 
        """
        environment/project/0.756827735/NDK_ROOT/delimiter=\:
        environment/project/0.756827735/NDK_ROOT/operation=append
        environment/project/0.756827735/NDK_ROOT/value=""" + os.environ['NDK_ROOT'] +
        """
        environment/project/0.756827735/append=true
        environment/project/0.756827735/appendContributed=true
        """)
    setting_f.close()

144번째줄 추가



스크립트에 대해서 약간 설명을 하자면…


.classpath


안드로이드 빌드시 dependency를 설정하는 부분이다.

이걸 따로 설정 안해줄시 cocos2dx의 java소스파일을 링크해주어야 한다.
하지만 이것만 해줄시 파일위치를 찾지못하므로 아래 .project내용이 있어야 한다.


.cproject


이클립스 C/C++의 프로젝트 설정파일이다.
cocos2d-x의 root위치와 프로젝트 이름을 생성하는 프로젝트 이름으로 변경해준다.


.project


이클립스 프로젝트 설정파일이다.
COCOS2DX로 되어있는 부분을 전부 cocos2d-x의 root위치로 변경해준다.
이렇게 설정하면 이클립스에서 package explorer에서 해당하는 소스들이 링크되어 확인이 가능하다.


package explorer


또한 .classpath에 설정한 cocos2dx-src도 링크로 추가하여주고, Resources파일도 추가하여준다.
Classes는 추가되어 있으면서 Resources는 왜 빠져있는지 모르겠다…. =_=;;;



.project.properties


cocos2dx의 java소스위치로 연결해주는 부분이다. cocos2d-x의 root로 위치변경해준다.



.settings 


이 부분은 없는 파일을 만들어 넣는 부분이다.
해당 내용은 C/C++빌드시에 사용할 환경변수를 지정해주는 부분이다.
NDK_ROOT와 COCOS2DX_ROOT를 등록하여준다.
(COCOS2DX_ROOT인 경우는 원래 안해도 되었으나 앞 강좌에서 build_native.sh를 수정할때 COCOS2DX_ROOT부분을 주석처리 하여 빌드시 위치를 찾지못하므로 등록해주어야 한다.)



+추가로 이전 강좌에서 IOS스크립트 추가내용

  지난 시간에 수정했던 부분 


이 부분역시 Xcode프로젝트 파일에서 cocos2dx의 위치를 잡아주는것이다.




이것으로 path설정하는부분은 끝이났다…
(기본 위치로 쓰면 간단히 생성만 하면되지만…. 원하는 위치에 프로젝트를 생성하려니 참 복잡하다….=ㅁ=;; )

귀찮은 사람들은…. 파일을 올려두니 그냥 받아서 쓰자 =_=;;


create_project.py






필자는 굳이 따라하라고는 안했다......ㅌㅌㅌ






Android 개발 준비

프로젝트를 생성하기전에 Android개발을 위해 안드로이드 SDK와 NDK와 ADT를 설치하자.
SDK와 ADT(Eclipse)는 ADT를 설치하면 같이 설치가 된다.


안드로이드 개발자 사이트에서 ADT를 받아보자. 


ADT Download


ADT Download 동의


다운받은 Zip파일의 압축을 풀면 ADT(eclipse)와 SDK가 있다.


ADT 와 SDK


ADT와 같이 안드로이드 개발자 사이트에서 NDK를 받아보자.



NDK Download 동의


필자는 r9버전을 설치했다.(r9부터 toolchain다운로드가 생겼는데 따로 설치 안해도 된다.)


전부 다운을 받고 원하는 위치에 압축을 풀었으면 환경변수를 잡아줘야 한다. 

환경변수




이제 ADT를 실행해보자.

ADT 실행


먼저 시작하기전에 안드로이드 sdk들을 설치해야 한다. sdk manager를 실행한다.

SDK Manager 실행

 

실행하면 Build를 위한 tool과(이미 설치되어있을것이다.) SDK를 설치해준다.
(최소버전을 2.2버전부터 지원할것이므로 2.2를 선택하여 설치하고 에뮬레이터를 실행하기 위하여 4.2.2버전도 설치한다.)


tool과 sdk를 설치한다




설정이 끝났으면 프로젝트를 생성해 보겠다.





프로젝트 생성

지난번 생성했던 프로젝트를 제거하고 다시 프로젝트를 생성한다. 


프로젝트 생성!


ps. 참고로 create_project.py가 있는 폴더는 다른곳으로 이동해도 정상적으로 동작한다.
단, 안에 있는 json파일도 같이 있어야 한다.





Android 프로젝트 열기 & 빌드

생성된 프로젝트를 ADT에서 연다.

File->New->Other


Android Project From Existing Code


Directory 지정


Import 완료



프로젝트가 정상적으로 열렸으면



빌드를 해보자. 


Run을 누르거나 옆에 재생표시 처럼되있는 버튼을 누른다.


빌드를 하면 콘솔창이 뜰수도 있고 아무런 변화가 없을수도 있다… 당황하지 말자… 빌드중인거다… 


아무 변화가 없다고 당황하지 말자... 열심히 빌드중이다... 


열심히 빌드중...



빌드가 완료되면 아래와 같이 실행할 Device를 선택할수 있는 창이 뜨거나 에뮬레이터가 실행되거나 컴퓨터에 연결한 안드로이드 기기에 실행이 될것이다.


Device 선택


만일 안드로이드 기기도 없고 에뮬레이터도 만든적이 없다면 에뮬레이터를 하나 만들자.
(왠만하면 기기를 사도록 하자 =_=;;; 에뮬레이터로 개발하다가 모니터를 부술지도 모른다.)



에뮬레이터는 Device선택창에서 2번째 항목을 선택후 오른쪽하단에 Manager버튼을 클릭하거나 Window->Android Virtual Device Manager를 선택한다.


Window->Android Virtual Device Manager


Android Virtual Device Manager



새로 만들어야 하므로 New를 눌러서 아래와 같이 생성해준다.
버전은 4.2.2로 해주고 Use Host GPU를 반드시 활성화 해준다.
Use Host GPU를 활성화 해야만 GL 2.0을 사용할수 있다.=ㅁ=;;
(이상하게 낮은 안드로이드 버전에서는 실행시 GLThread에서 애러가 난다 =_=;;)

Device 생성


생성했으면 AVD Manager창을 닫고 Device 선택창으로 돌아온뒤 방금 생성한 AVD를 실행해준다.


AVD 실행


AVD


AVD가 정상적으로 실행이 됬다면 Device선택창에서 선택후 실행해준다.


Select Target

Android Run!


위 처럼 나온다면 안드로이드 개발 준비가 완료된것이다.



이제 IOS개발 준비를 해보겠다.





IOS 프로젝트 열기 & 빌드

Xcode실행


IOS프로젝트 이므로….XCode를 실행해준다…..
(이…쁘다 XCode +_+)


프로젝트 불러오기


생성된 프로젝트를 불러온다.


프로젝트 빌드 타겟 설정


프로젝트 빌드 타겟을 설정해준다.
(cocos2dx의 소스도 같이 있어서 그런지 cocos2dx로 기본설정이 되어있다…. =_=;;;)


빌드!


왼쪽 상단에 재생버튼 처럼 생긴놈을 클릭하면 빌드/실행이 된다!

run


빌드가 완료되면 시뮬레이터가 실행되고 뒤집힌 Cocos2D-X이미지가 뜨고 위와 같이 실행된화면이 뜬다.


빌드가 잘되고 실행이 된다면 IOS 개발할 준비가 완료된것이다.





이제 개발을 위한 기본준비는 끝이 났고 다음시간부터 본격적으로 개발을 시작해보겠다.
그전에 Android/IOS 두가지의 플랫폼, 서로다른 개발툴을 쓰고있다. 하지만 소스는 하나로 공유하고 있다. 

XCode에서 보이는 Classes, Resources 그리고 ADT(Eclipse)에서 보이는 Classes, Resources가 서로 공유되는 파일들이다.

각각 프로젝트 폴더의 상위 폴더에 존재한다.


XCode Explorer


ADT Explorer


실제 파일



앞으로 개발시에는 공통으로 사용하는 Classes, Resources에서 작업을 하게될것이다.





개발을 하면서 천천히 정리하면서 쓰는것이라 다음이 언제가 될지는……….

하... 안드로이드 에뮬이 잘 안되서 오래걸렸다.....

저작자 표시 비영리 동일 조건 변경 허락
신고

'Dev/Info > Cocos2DX' 카테고리의 다른 글

[cocos2d-x] 2.Start  (0) 2013.10.04
[cocos2d-x] 목차  (0) 2013.09.29
[cocos2d-x] 1.Install & Setting  (0) 2013.09.29

[cocos2d-x] 목차

시간 날때 짬짬히 정리해서 올립니다.

[cocos2d-x] 1.Install & Setting

[cocos2d-x] 2.Start



많은분에게 도움이 되면 좋겠네요...:)

저작자 표시 비영리 동일 조건 변경 허락
신고

'Dev/Info > Cocos2DX' 카테고리의 다른 글

[cocos2d-x] 2.Start  (0) 2013.10.04
[cocos2d-x] 목차  (0) 2013.09.29
[cocos2d-x] 1.Install & Setting  (0) 2013.09.29

1.Cocos2D-X Install & Setting

모바일 2D게임을 만들때 많이 쓰이고 있는(?) Cocos2D-X…
요즘 이것저것 건들여 본다고 시작하게되어… 정리겸 혹시나 다른분들께 도움이 될까 끄적여 본다.


Windows의 경우에는 간단히 CocoStudio를 제공하고 있어 해당 IDE를 설치하여 이용하여도 되지만 필자가 Macbook Air에서 주로 작업하여 직접 SDK를 설치하고 셋팅하여야 한다.


SDK설치와 셋팅이 의외로 설치방법이 IOS는 간단한데…. Android는 수정해야할게 좀 있다…
검색을 해도 최신버전의 설치방법은 한글로 된 문서가 잘 안보이는거 같다…….
(검색능력이 떨어져서 못찾는건가….)



ps.본 글은 AndroidIOS의 설정방법만 설명하니… 그 외의 플랫폼은 다른곳에서 찾아주….세요…

Cocos2D-X Download

Cocos2D-X홈페이지에 들어가서 오른쪽에 있는 Stable버전을 다운받는다.
(이 글을 쓰고있는 현재 최신 Stable버전은 2.2.0버전이다.)
설치후 압축을 풀고 원하는 위치로 이동해 놓도록 하자.(ex. /Users/name/sdks/cocos2d-x)

  • 필자의 경우에는 /Users/name/sdks/cocos2d-x–2.2.0으로 압축을 풀고 /Users/name/sdks/cocos2d-x로 Symbolic Link를 걸어뒀다.


Project 설정

Cocos2d-x 2.2.0부터 XCode설정 스크립트가 안보인다....
이전에는 IOS의 경우에는 Project Template을 XCode에 설치하는 스크립트가 제공되어 XCode에 Template을 설치했었다.
또한 내 기억으로는... Android 셋팅의 경우에는 몇몇 스크립트의 수정이 필요했으나 2.2.0버전부터 수정이 필요없게 되었다.
(단, 프로젝트 폴더의 생성위치를 변경하고 싶다면 약간의 수정이 필요하다.)


이전 버전에는 XCode설치 스크립트가 제공되었다... (install_cocos2dx_xcode.sh)

프로젝트 폴더의 위치를 변경하기 위해서는 먼저 Path설정과 파일을 몇가지….. 수정해 줘야 한다.
(아래 과정이 귀찮다면… 그냥 기본적으로 잡아주는대로 쓰자…)



수정할게 좀 있...으므로.... 포기하면 편해요....




마음의 준비가 됬다면 시작해보자....

  1. OS의 환경변수를 잡아준다.
    1. COCOS2DX_ROOT : Cocos2D-X SDK의 위치를 잡아주면 된다.
    2. COCOS2DX_PROJECT_DIR : Cocos2D-X의 프로젝트 폴더를 생성할 위치를 잡아준다.
      (ex. $HOME/work/cocos2dx) 

      환경변수

  2. tools/project-creator/create_project.py 파일을 수정해준다.
    1. 52번째 줄의 context[“dst_project_path”]의 값을 os.environ[‘COCOS2DX_PROJECT_DIR’] + ‘/’ + context[“dst_project_name”]로 변경한다.
      (context[“dst_project_path”] = os.environ[‘COCOS2DX_PROJECT_DIR’] + ‘/’ + context[“dst_project_name”])

      52번째줄 수정

    2. 75~105번째 줄에서 context[“src_project_path”]로 되어있는 변수들의 값을 os.environ[‘COCOS2DX_ROOT’] + “/template/multi-platform-*”와 같이 변경한다.
      (os.environ[‘COCOS2DX_ROOT’] + “/template/multi-platform-cpp”,
      os.environ[‘COCOS2DX_ROOT’] + “/template/multi-platform-lua”,
      os.environ[‘COCOS2DX_ROOT’] + “/template/multi-platform-js” )

      75~105번째줄 수정

  3. 각 플랫폼 별 tmplate을 수정해준다.
    1. Android
      1. template/multi-platform-cpp/proj.android/build_native.sh 파일을 수정해준다.
        1. 40번째 줄의 다음 내용을 주석처리 또는 지워준다. (COCOS2DX_ROOT=“$DIR/../../..”)

          40번째 줄 주석

    2. IOS
      1. template/multi-platform-cpp/proj.ios/HelloCpp.xcodeproj/project.pbxproj 파일을 수정해준다.
        1. 2067, 2116번째 줄의 HEADER_SEARCH_PATHS안에 $(SRCROOT)/../../../external/libwebsockets/ios/include를 추가해준다.

          2067번째 줄 추가

          2116번째 줄 추가

      2. tools/project-creator/create_project.py 파일을 수정해준다.
        1. 141번째줄 (if (platform == “android”)문 다음)에 아래의 코드를 넣어준다.
if (platform == "ios"):
    src = context["src_project_name"] + ".xcodeproj/project.pbxproj"
    if (os.path.exists(proj_path + src) == True):
        replaceString(proj_path + src, "$(SRCROOT)/../../..", os.environ['COCOS2DX_ROOT'])
        replaceString(proj_path + src, "../../../cocos2dx", os.environ['COCOS2DX_ROOT'] + "/cocos2dx")
        replaceString(proj_path + src, "../../../external", os.environ['COCOS2DX_ROOT'] + "/external")
        replaceString(proj_path + src, "../../../extensions", os.environ['COCOS2DX_ROOT'] + "/extensions")
        replaceString(proj_path + src, "../../../CocosDenshion", os.environ['COCOS2DX_ROOT'] + "/CocosDenshion")
        replaceString(proj_path + src, "../../cocos2dx", os.environ['COCOS2DX_ROOT'] + "/cocos2dx")


141번째 줄 추가

이로써 기본적으로 프로젝트를 생성할 준비는 끝이 났다.


이걸 따라했다면...


Project 생성

프로젝트 생성은 아주 간단하다.
설정에서 수정했던 tools/project-creator/create_project.py를 아래와 같이 실행하기만 하면 자동으로 프로젝트를 생성해준다.

  • tools/project-creator/create_project.py -project [project명] -package [package] -language cpp 
    ex) tools/project-creator/create_project.py -project test -package test.test.test -language cpp


project 생성

생성된 project


만약 위에서 프로젝트 폴더 위치를 변경했다면 해당 위치에, 변경과정을 안거쳤다면 projects/ 안에 프로젝트 폴더가 생성되어있을것이다.
(projects/안에 생성되어있다면 해당 프로젝트를 다른곳으로 이동시 상대경로가 변경되어 빌드가 안될것이다…)


IOS인 경우는 XCode로 해당 proj.ios를 불러오면 되고, Android의 경우에는 Eclipse로 proj.android를 불러오면 된다.
Cocos2D-X의 코드는 Classes에 리소스는 Resources에 위치해 있다.


End…

이것으로 Cocos2D-X의 사용을 위한 프로젝트 생성을 위한 설정은 끝이났다.

다음 포스팅은 생성한 프로젝트를 실행해보도록 하겠다.
(언제 될지 모르겠지만…. 최대한 빨리 써보도록……)



ps. 필자처럼 복잡하게 살지말고… 간단하게 기본위치에 생성하는것을 적극 추천한다..=_=;;;



Next: [cocos2d-x] 2.Start


저작자 표시 비영리 동일 조건 변경 허락
신고

'Dev/Info > Cocos2DX' 카테고리의 다른 글

[cocos2d-x] 2.Start  (0) 2013.10.04
[cocos2d-x] 목차  (0) 2013.09.29
[cocos2d-x] 1.Install & Setting  (0) 2013.09.29