'안드로이드'에 해당되는 글 8건

  1. 2014.04.02 유니티 안드로이드 확장 개발 - jar 파일(이클립스연동) (3)
  2. 2014.01.08 [Action] cocos2d-x 액션 사용법
  3. 2013.09.22 챕터 6 - 씬을 전환하는 방법 (1)
  4. 2013.09.22 챕터 5 - 음악 재생 및 이펙트 효과음 재생 하는 법
  5. 2013.09.22 챕터 4 - 충돌 체크하는 법
  6. 2013.09.21 Tutorial - cocos2d-x 로 간단한 게임 만들기
  7. 2013.09.20 cocos2d-x 기본 세팅 - 3
  8. 2013.09.19 cocos2d-x 기본 세팅 - 1

유니티 안드로이드 확장 개발 - jar 파일(이클립스연동)

|

유니티는 다양한 에셋들을 사용해서 개발의 편의성을 높이고 있습니다.

Prime31이나 각종 애드몹 관련 플러그인들도 이와 같이 개발의 편의성을 높이는 플러그인입니다. 이런 플러그인을 직접 돈주고 사면 좋겠지만.

저희 같은 가난한 개발자 및 학생들은 직접 유니티와 자바의 연동을 통해서 구현해야됩니다. 


여기서는 자바 클래스와 연동하는 방법을 간단하게 소개하겠습니다.


각각 호출할때 기본적인 함수들이 있습니다.


유니티에서는 자바 클래스를 호출할때

AndroidJavaObject.Call 로 자바 클래스의 함수를 호출할수 있습니다.


자바클래스에서 유니티를 호출할때는

UnityPlayer.UnitySendMessage 함수를 사용하여 호출합니다.


유니티로 제작된 게임을 자바 클래스를 통해 확장하는 방식은 2가지가 있는데

첫번째 방식은 자바 클래스를 별도로 제작한 후 유니티 프로젝트 폴더의 Plugins/Android 폴더에 올려서 확장하는 방식이고

두번째 방식은 유니티 내에서 이클립스로 export해주어서 확장하는 방법입니다.


jar 파일을 생성해서 관리하는것이 좀더 편한것 같으니 첫번째 방식을 사용하겠습니다.


먼저 jar 파일을 생성할 프로젝트를 이클립스에서 생성해줍니다.







패키지 이름을 com.test.androidjartest 로 지정했는데 유니티 내의 Bundle Identifier 항목과 일치해야됩니다.


Edit - Project Settings - Player 에서

안드로이드 모양의 버튼을 누르면 Bundle Identifiire 를 수정할수 있습니다. 위에서 만든 패키지 이름과 일치 시켜줍니다.


이클립스에서 프로젝트를 생성하고 난다음에는 유니티가 제공하는 jar 파일을 임포트 해주어야 유니티가 제공해주는 함수를 사용할수 있습니다.


유니티가 제공하는 jar 파일은 classes.jar 파일이며 경로는 설치된 폴더에서 Editor/Data/PlaybackEngines/androidplayer/bin 폴더에 존재합니다.






jar 파일을 추가하는 방법은 프로젝트 폴더에서 오른쪽 버튼을 누르고 properties 를 누릅니다.

그리고 JaVa Build Path 에서 Libraries 에서 Add External JARs 버튼을 누르고 해당 경로에 있는 jar 파일은 선택해주고

Order and Export 에서 불러온 jar 파일을 체크해주고 ok를 누릅니다.





이클립스에서 만들어진 MainActivity 를 위와 같이 고쳐줍니다. 소스를 모두 수정하면 이 소스를 jar 파일로 만들어 exprot 해주겠습니다.






프로젝트 폴더에서 오른쪽 버튼을 누르고 Exprot 를 클릭해줍니다. 그리고 위 처럼 Jar file을 누르고 next 버튼을 눌러주고

자신의 프로젝트에서 src 폴더만 체크 해주고 Jar File 의 이름을 설정해주고 finish 버튼을 누르면 jar 파일이 완성됩니다.





이제 유니티로 넘어오겠습니다.


유니티 내에서는 jar 파일을 인식하기 위해서는 반드시 해당 경로에 jar 파일이 존재해야됩니다. 안드로이드 같은 경우네는

Plugins/Android 폴더에 jar 파일이 존재해야됩니다.


그리고 해당 jar 파일을 실행하기 위해서는 AndoridManifest 및 res 폴더가 필요하므로 위에서 만든 

jar 파일과 res 폴더 AndroidManifest 파일들을 Android 폴더에 집어 넣어줍니다.






이제 모든 세팅이 완료 되었습니다.



이제 제대로 유니티에서 -> 자바 클래스로 자바 클래스에서 유니티로 함수가 호출되는지 보겠습니다.


빈게임 오브젝트를 만들고 AndroidManager로 이름을 변경합니다.(반드시 AndroidManager로 지어주어야 됩니다.)


그리고 AndroidManager 에 아래 스크립트를 할당해줍니다.





AndroidManager 내의 Start 함수에서 MainActivity 자바 클래스의 HelloFunction 함수를 호출(_activity,Call("HelloFunction)하고,

자바 클래스에서는(이클립스) AndroidManage 클래스의 AndroidLog 함수를 호출(UnityPlayer.UnitySendMessage("AndroidManager", "AndroidLog", "Hello!");)하는 구조입니다.



할당후 안드로이드 단말기에서 빌드를 하면 아래와 같이 로그를 출력할 것입니다.






Trackback 0 And Comment 3
  1. Hello 2014.08.04 17:17 address edit & del reply

    AndroidManager.cs 말고 AndroidManager_Test.cs 로 만들면 안되는 이유가 뭐죠?>

    • Favicon of https://hyunity3d.tistory.com BlogIcon 히아레인 2014.08.04 22:03 신고 address edit & del

      MainActivity 보시면 unitysendMessage 함수에서 해당 게임오브젝트 명을 입력해야됩니다 AndroidManager_Test 라고 입력해보세요

  2. Ku 2014.10.21 23:04 address edit & del reply

    실행하였다니 아래와 같은 오류가 발생하였습니다 ㅠㅠ 왜인지 감이 안옵니다 ㅠㅠㅠㅠㅠㅠ
    Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.
    C:\Users\kyoungku\Desktop\Company\adt\sdk\build-tools\android-4.4W\aapt.exe package --auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S "res" -I "C:/Users/kyoungku/Desktop/Company/adt/sdk/platforms/android-20\android.jar" -F bin/resources.ap_

    stderr[
    res\values\styles.xml:7: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light'.
    res\values-v11\styles.xml:7: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light'.
    res\values-v14\styles.xml:8: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'.
    ]
    stdout[
    Configurations:
    (default)
    v11
    v14
    hdpi
    mdpi
    xhdpi
    xxhdpi
    w820dp

    Files:
    drawable\app_icon.png
    Src: () res\drawable\app_icon.png
    drawable\ic_launcher.png
    Src: (hdpi) res\drawable-hdpi\ic_launcher.png
    Src: (mdpi) res\drawable-mdpi\ic_launcher.png
    Src: (xhdpi) res\drawable-xhdpi\ic_launcher.png
    Src: (xxhdpi) res\drawable-xxhdpi\ic_launcher.png
    layout\activity_main.xml
    Src: () res\layout\activity_main.xml
    menu\main.xml
    Src: () res\menu\main.xml
    values\dimens.xml
    Src: () res\values\dimens.xml
    Src: (w820dp) res\values-w820dp\dimens.xml
    values\strings.xml
    Src: () res\values\strings.xml
    values\styles.xml
    Src: () res\values\styles.xml
    Src: (v11) res\values-v11\styles.xml
    Src: (v14) res\values-v14\styles.xml
    AndroidManifest.xml
    Src: () AndroidManifest.xml

    Resource Dirs:
    Type drawable
    drawable\app_icon.png
    Src: () res\drawable\app_icon.png
    drawable\ic_launcher.png
    Src: (hdpi) res\drawable-hdpi\ic_launcher.png
    Src: (mdpi) res\drawable-mdpi\ic_launcher.png
    Src: (xhdpi) res\drawable-xhdpi\ic_launcher.png
    Src: (xxhdpi) res\drawable-xxhdpi\ic_launcher.png
    Type layout
    layout\activity_main.xml
    Src: () res\layout\activity_main.xml
    Type menu
    menu\main.xml
    Src: () res\menu\main.xml
    Type values
    values\dimens.xml
    Src: () res\values\dimens.xml
    Src: (w820dp) res\values-w820dp\dimens.xml
    values\strings.xml
    Src: () res\values\strings.xml
    values\styles.xml
    Src: () res\values\styles.xml
    Src: (v11) res\values-v11\styles.xml
    Src: (v14) res\values-v14\styles.xml
    Including resources from package: C:\Users\kyoungku\Desktop\Company\adt\sdk\platforms\android-20\android.jar
    applyFileOverlay for drawable
    applyFileOverlay for layout
    applyFileOverlay for anim
    applyFileOverlay for animator
    applyFileOverlay for interpolator
    applyFileOverlay for transition
    applyFileOverlay for xml
    applyFileOverlay for raw
    applyFileOverlay for color
    applyFileOverlay for menu
    applyFileOverlay for mipmap
    Processing image: res\drawable\app_icon.png
    Processing image: res\drawable-hdpi\ic_launcher.png
    Processing image: res\drawable-mdpi\ic_launcher.png
    Processing image: res\drawable-xhdpi\ic_launcher.png
    (processed image res\drawable-mdpi\ic_launcher.png: 82% size of source)
    Processing image: res\drawable-xxhdpi\ic_launcher.png
    (processed image res\drawable-hdpi\ic_launcher.png: 77% size of source)
    (processed image res\drawable\app_icon.png: 94% size of source)
    (processed image res\drawable-xhdpi\ic_launcher.png: 74% size of source)
    (processed image res\drawable-xxhdpi\ic_launcher.png: 72% size of source)
    (new resource id app_icon from drawable\app_icon.png #generated)
    (new resource id ic_launcher from hdpi\drawable\ic_launcher.png #generated)
    (new resource id ic_launcher from mdpi\drawable\ic_launcher.png #generated)
    (new resource id ic_launcher from xhdpi\drawable\ic_launcher.png #generated)
    (new resource id ic_launcher from xxhdpi\drawable\ic_launcher.png #generated)
    (new resource id activity_main from res\layout\activity_main.xml)
    (new resource id main from res\menu\main.xml)
    ]

[Action] cocos2d-x 액션 사용법

|


Actions



Actions 클래스는 CCNode 를 상속받는 모든 객체에 명령을 부여합니다. 액션은  오브젝트의 위치, 회전, 크기 기타등등 값들을 수정합니다

일정기간동안 수정하는 작업이면 -> CCIntervalAction actions 그렇지 않으면 -> CCInstantAction 입니다.

 예를들면 CCMoveBy는 일정기간동안 수정합니다. CCIntervalAction 액션입니다.

액션의 사용 예:

1// 스프라이트가 오른족으로  50 픽셀, 밑으로 10 픽셀 움직임 2초동안.
2CCActionInterval*  actionBy = CCMoveBy::create(2, ccp(50,10));


가속 관련된 액션들 (점점 빨라지거나 느려지는등)

  • CCEaseIn
  • CCEaseOut
  • CCEaseInOut
  • CCSpeed
    Etc. (See the ActionsEaseTest.cpp example for more info)

CCActionManager를 사용하면 중간에 액션을 일시정지 하고 재시작 할수도있다.(해당객체의)

1// Pause actions
2CCDirector *director = CCDirector::sharedDirector();
3m_pPausedTargets = director->getActionManager()->pauseAllRunningActions();
4// resume actions
5CCDirector *director = CCDirector::sharedDirector();
6director->getActionManager()->resumeTargets(m_pPausedTargets);

Basic Actions

Basic actions are the ones that modify basic properties like:

Position(위치수정관련)

CCMoveBy
CCMoveTo
CCJumpBy
CCJumpTo
CCBezierBy
CCBezierTo
CCPlace

Scale(크기수정관련)

CCScaleBy
CCScaleTo

Rotation(회전)

CCRotateBy
CCRotateTo

Visibility(보이는거)

CCShow
CCHide
CCBlink
CCToggleVisibility

Opacity(알파값)

CCFadeIn
CCFadeOut
CCFadeTo

Color(색깔)

CCTintBy
CCTintTo

Example:

1CCSprite *sprite = CCSprite::create("Images/grossini.png");
2sprite->setPosition(ccp(100, 100));
3addChild(sprite);
4
5CCMoveBy* act1 = CCMoveBy::create(0.5, ccp(100, 0));
6sprite->runAction(CCRepeat::create(act1, 1));

The act1 will be a CCMoveBy action of duration 0.5, but with the position value of ccp(100,0).


 뒤에 By 붙는거와 To 붙는거 차이


By는 현재 값 기준으로 변경 To는 그냥 그런거 상관없이 변경

만약 현재 캐릭터 위치가 120 .30 이면

만약 CCMoveBy::create(2, ccp(50,10));    //현재 캐릭터 위치 기준으로 50,10만큼 이동 -> 170,40

       CCMoveTo::create(2ccp(50,10));      //좌표값에 50, 10으로 이동 -> 50,10


Trackback 0 And Comment 0

챕터 6 - 씬을 전환하는 방법

|

SimpleGame은 기초적인것은 완성되었습니다. 우리는 좀 더 전문적인 게임을 만들기 위해서 몇가지 기능을 더 추가할 생각입니다.

이번 챕터에서는 우리는 새로운 씬을 추가할것입니다. 적들을 일정 개수만큼 없애면 "You Win!" 그렇지 못하면 "You lose"화면이 출력됩니다.

GameOverScene.cpp 와 GameOverScene.h 파일을 만듭니다.

 

 

 

 GameOverScene 파일을 만들면 아래와같이 생성되는데 이 두개의 파일을 Classes 폴더 하위에 옮깁니다.

먼저 두개의 파일을 선택하고 del 키를 누르거나 오른쪽 - 삭제 메뉴를 클릭합니다.

 

 

 

 이렇게 제거를 하고 난 다음에 실제로 존재하는 파일위치를 변경합니다,

클래스를 생성하면 proj.win32 폴더에 파일이 생성되는데 이파일을 Classes 폴더에 옮깁니다.

예) C:\Android\cocos2d-x\cocos2d-x-2.1.5\projects\SimpleGame\proj.win32

     C:\Android\cocos2d-x\cocos2d-x-2.1.5\projects\SimpleGame\Classes

visual studio 의 폴더와 실제 폴더 위치를 동일하게 해줘야 나중에 문제가 생기지 않습니다

 

 

 

 

 

이렇게 파일의 위치를 옮기고 Class폴더에서 오른쪽 버튼 - 추가 - 기존항목을 눌러 cpp와 h를 추가하거나 폴더에서 드래그앤 드롭으로 추가합니다.

파일의 위치를 수정하고 GameOverScene.h와 GameOverScene.cpp를 아래와 같이 수정합니다

팁:

1. 클래스 멤버 함수는 .m 파일에서는 h파일에 선언없이 사용할수 있지만 c++에서는 무조건 선언해줘야된다.

2. 함수 create() (2.0 이전 버전에서는 node()) 는 c++에서는 self 라는 키워드가 없습니다.

CREATE_FUNC는 더 쉽게 create()함수를 생성하게 도와주는 매크로 입니다.

두매크로를 사용하기 위해서는 init()를 구현해야됩니다.

3. cocos2d-x에서는 안드로이드 sdk 에서는 try catch를 지원하지 않기 때문에 초기화를

생성자에서 한번 init에서 한번 촉화 합니다

4. setter 및 getter _lable와 _layer는 다양한 매크로로 구현할수 있으며,

위 코드에서 CC_SYNTHESIZE_READONLY 는 getter 만 구현 합니다.

GameOverScene.cpp 코드

GameOverScene.cpp 에서는 하나의 scene 과 하나의 layer 로 구현된다. 하나의 신은 여러 layer 포함할수 있습니다.하나의 레이어의 중앙에 "You Win!" 혹은 "You Lose!"를 출력합니다.

1. GameOverLayer _label 과 GameOverScene _layer 은 선언되었고, init에서 retain을 해주고 소멸자에서 release를 해줘야 됩니다.

2. NSAutoReleasePool 은 cocos2d-x 에서도 존재합니다.

우리는 두가지 경우에 release()를 호출합니다.

  • 개체에 new 로 선언했을때 예를 들어 CCSprite * sprite = new CCSprite();
  • 개체가 static 함수에 의해서 만들어질때 예를 들어 CCSprite * sprite = CCSprite::create(); 에는 필요하지 않지만 sprite->retain()을 호출하면 sprite->release()를 호출해야 됩니다.

 

우리는 HelloWorldScene 다음 변수를 추가해야 됩니다.(얼마나 많은 적을 죽였는지 카운팅 해주는 변수)

int _projectilesDestroyed;

HellWorld::HelloWorld() 에서 초기화 시켜줍니다.

HelloWorld::HelloWorld()

        :_targets(NULL),

        _projectiles(NULL),

        _projectilesDestroyed(0)

{

}

GameOverScene.h 를 HelloWorldScene.cpp 에 include 를 해줍니다.

#include "GameOverScene.h"

 

이길때 처리

HelloWorld::update() 함수의 TargetsToDelete 루프에 다음 코드를추가합니다.

        //충돌한 적에 대한 처리

        CCARRAY_FOREACH(targetsToDelete, jt)

        {

               CCSprite * target = dynamic_cast<CCSprite *>(jt);

               _targets->removeObject(target);

               this->removeChild(target, true);

              

               _projectilesDestroyed++;

               if(_projectilesDestroyed >= 5){

                       GameOverScene * gameOverScene = GameOverScene::create();

                       gameOverScene->getLayer()->getLabel()->setString("You win!");

                       CCDirector::sharedDirector()->replaceScene(gameOverScene);

               }

 

        }

질때 처리

HelloWorld::spriteMoveFinished에 다음 코드를 추가합니다.

//배열에 집어넣었던 or 표창을 배열에서 제거한다.

        if(sprite->getTag() == 1) //

        {

               _targets->removeObject(sprite);

 

               //적이 하나라도 화면을 벗어나면 게임에서 진다.

               GameOverScene * gameOverScene = GameOverScene::create();

               gameOverScene->getLayer()->getLabel()->setString("You Lose :[");

               CCDirector::sharedDirector()->replaceScene(gameOverScene);

        }

 

 

모든 준비가 끝났습니다. 컴파일을하고 실행을 합시다.

적. 표창 ,배경음악, 승리화면 등 모두 완성 했습니다.

 

 

Trackback 0 And Comment 1
  1. 감사합니다 2013.10.06 00:04 address edit & del reply

    많은 도움이 됐습니다!!

    튜토리얼 한번 따라하기 무지 힘드네요..

    무슨 셋팅이 저리도 복잡한지.. ㅠㅠㅠ

챕터 5 - 음악 재생 및 이펙트 효과음 재생 하는 법

|

이번 챕터에서는 우리는 배경음악 및 게임내 효과음을 재생하는 방법을 배울것입니다.

약간의 코드만을 추가하는것만으로도 쉽게 음악을 재생할수있습니다.

cocos2d-x 에서는 SimpleAudioEngine가 존재합니다.

먼저 첨부파일 2개를 다운받으시고 Resources 폴더에 집어넣으세요

 

5.zip

HelloWorldScene.cpp의 상단에 SimpleaudioEngine.h 를 include 시켜줍니다.

#include "SimpleAudioEngine.h"

배경음악을 재생시켜주는 것을 HelloWorld::init() 메서드 에 집어넣어줍니다.

(편의상 맨 아래 코드에 집어넣었습니다.) 

CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic(

               "background-music-aac.wav",true);

 

그리고 화면을 터치시 발생되는 이펙트는 ccTouchesEnded()에 집어넣어줍니다.(편의상 맨 아래에 집어넣었습니다.)

CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("pew-pew-lei.wav");

 

컴파일하고 실행을 하면 소리가 재생될것입니다.

 

 

Trackback 0 And Comment 0

챕터 4 - 충돌 체크하는 법

|

주인공은 표창을 발사한다 하지만 적들은 죽지않는다

이번 챕터에서는 표창과 적들의 충돌체크 방법을 소개한다.

게임에서 우리는 sprite에 태그를 붙인다 적 = tag 1 , 표창 = tag 2로

CCSprite는 CCNode를 상속받는데 CCNode에는 m_nTag라는 변수값이 있고 이 값

은 setTag() 및 getTag()로 접근할수 있다 우리는 이 Tag값을 이용해서 두가지

sprite를 구별한다.

먼저 HelloWorldScene.h 에 아래 코드를 추가한다.

생성자 및 소멸자도 추가한다.

이 코드는 적과 표창을 저장할수 있는 배열이다. (CCArray)

HelloWorld();

~HelloWorld();

protected:

        cocos2d::CCArray * _targets;

        cocos2d::CCArray * _projectiles;

               

HelloWorldScene.cpp 에서는 두개의 CCArray 을 메모리 할당하고 (HelloWorld::init() 메서드)

생성자에서는 변수를 초기화 하는 코드를

소멸자에서는 메모리를 해제하는 코드를 추가한다.

 addTarget() 함수를 수정하자.

target 에 태그를 붙이고(1번 태그), _targets 배열에 새롭게 만들어진 target 을 집어넣는 코드 

addTarget 함수 맨마지막에 집어넣자.

//targets 배열에 집어넣기

target->setTag(1);

_targets->addObject(target);

CccTouchesEnded() 함수를 수정하자.

_projectile 태그를 붙이고(2번태그) _projectiles 배열에 새롭게 만들어진 projectile 을 집어넣는 코드

//표창을 배열에 집어넣기

projectile->setTag(2);

_projectiles->addObject(projectile);

그리고 spriteMoveFinished 함수를 아래와 같이 변경한다.

void HelloWorld::spriteMoveFinished(CCNode * sender)

{

        CCSprite * sprite = (CCSprite *) sender;

        this->removeChild(sprite);

 

        //배열에 집어넣었던 or 표창을 배열에서 제거한다.

        if(sprite->getTag() == 1) //

        {

               _targets->removeObject(sprite);

        }

        else if(sprite->getTag() == 2)//표창

        {

               _projectiles->removeObject(sprite);

        }

 

}

update() 함수에서는 매 프레임 마다 충돌을 가지하고 충돌이 된 적이나 표창은 제거한다.

HelloWorldScene.h 에는 void update(float dt)를 선언하고

HelloWorldScene.cpp 에는 아래와 같이 정의하자

이렇게 정의한후 update() 함수를 매 프레임마다 블러주는 schedule 을 선언하자.

HelloWorld::init() 맨 아래에 선언해주자(return true 바로 위)

this->schedule(schedule_selector(HelloWorld::update));

컴파일을 하고 난후면 표창을 던지면 적이 죽는 모습을 볼수 있을 것이다.

 

Trackback 0 And Comment 0

Tutorial - cocos2d-x 로 간단한 게임 만들기

|

http://www.cocos2d-x.org/

에 있는 간단한 게임 만들기를 한글로 번역해서 올릴 생각입니다.

정말 기초 게임이니 초보자들만 보시길 추천해드립니다.

Trackback 0 And Comment 0

cocos2d-x 기본 세팅 - 3

|

새로운 프로젝트 생성

cocos2d-x 2.1.4 버전 이후로는 install-templates-msvc.bat 파일이 제거되고

tools/project-creator 파일을 실행시켜야된다. 이 파일을 실행시키기 위해선

python을 설치 해야된다. cocos2d-x에서는 파이썬 2.7.2 버전을 다운받기를 권장하고 있다.

http://www.python.org/download/releases/2.7.2/

위 링크로 가서 자신의 os에 맞는 프로그램을 설치한다.

 

 

 

 설치가 완료되면 path를 수정한다.

파이썬이 설치된 경로 추가

예) ;C:\Python27;

앞뒤로 세미콜론(;)은 반드시 붙여주자

 

환경변수 설정이 완료되면 윈도우 + r 키를 누르고 cmd 창을 실행시키고

python --version 을 입력해서 python 버전이 제대로 출력되면 설치가 완료 된것이다.

 

 


 

프로젝트 생성

C:\Android\cocos2d-x\cocos2d-x-2.1.5\tools\project-creator

create_project.py로 통합프로젝트를 만들수있다.

cmd 창을 열자. cocos2d-x 가 설치된 경로로 이동한다.

명령어

cd C:\Android\cocos2d-x\cocos2d-x-2.1.5\tools\project-creator 로 이동

python 으로 create_project.py파일을 실행하면 친절하게 만들때 어떤식으로 만들지 설명이

나온다.

sample1과 sample2 에 있는거 대로 실행을 해보자.

Sample 1: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame

Sample 2: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame
 -language javascript

python create_project.py create_project.py -project MyGame -package com.MyCompany.AwesomeGame -language cpp 입력

 

Have fun! 이란 글자가 나오면 정상적으로 프로젝트가 생성된 것입니다.

C:\Android\cocos2d-x\cocos2d-x-2.1.5\projects

파일에 프로젝트가 생성됩니다.

C:\Android\cocos2d-x\cocos2d-x-2.1.5\projects\MyGame\proj.win32로 들어가시면 솔루션 파일이 있습니다. 실행하시면 visual Studio 에서 실행 가능합니다.

 

 

 ctrl + F5로 빌드한 모습

 

 

'잡다한것들전부 > 세팅' 카테고리의 다른 글

cocos2d-x 기본 세팅 - 4  (2) 2013.09.21
cocos2d-x 기본 세팅 - 3  (0) 2013.09.20
cocos2d-x 기본 세팅 - 2  (0) 2013.09.19
cocos2d-x 기본 세팅 - 1  (0) 2013.09.19
Trackback 0 And Comment 0

cocos2d-x 기본 세팅 - 1

|

cocos2d-x 기본 세팅 Android

windows 8

visual studio 2012

cocos2d-x 2.1.5 버전 기준

1. java 설치

2. android sdk 설치

3. cgwin 설치

4. android ndk 설치

5. 이클립스 adt 설치

 

.여러가지 파일들을 설치해야 되므로 폴더를 설정해서 각 파일들을 다운받자.

현재 저는 C:\Android 여기에 모든 파일들을 다운받았다.

예)

안드로이드 sdk

C:\Android\ndk 

안드로이드 ndk

C:\Android\sdk

cgwin

C:\Android\cgwin

cocos2d-x

C:\Android\cocos2d-x


cocos2d-x 로 게임을 개발하기 위한 기본세팅

cocos2d-x 는 visual studio 로 개발을 해서 안드로이드 ndk 로 빌드를 할수있다.

android로 변환하기 위해서는 android sdk, ndk 가 필요하고 android sdk 는 java를 필요로

한다.

java 설치 및 환경변수 설정

http://www.oracle.com/technetwork/java/javase/downloads/index.html

위 링크를 클릭해서 java jdk 최신버전을 받자.

링크를 받고 설치를 한후 환경변수를 설정하자

내컴퓨터 -> 속성 -> 고급 -> 환경변수 -> 시스템 변수

 

 

1. JAVA_HOME 새로만들기 
      변수이름 : JAVA_HOME
      변수값 : 자바 jdk 를 설치한 위치                           

예) C:\Program Files\Java\jdk1.7.0_40

2. PATH 수정

기존에있는 PATH에서 설정을 해준다.

%JAVA_HOME%\bin; 추가

모든 경로는 세미콜론으로 구별한다

path 를 설정하고 윈도우 + r 키를 누르고 실행창에 cmd를 입력하고 엔터친다.

cmd 창이 뜨면 javac를 입력하고

 

이런창이 뜨면 제대로 환경변수 설정이 제대로 된것이다.

 


 

Android sdk 설치

http://developer.android.com/sdk/index.html

위 링크를 클릭해서 sdk 를 설치한다.

언제부터인지 몰라도 이제 안드로이드 sdk 를 받으면 이클립스를 기본으로 내장하고 있다.

C:\Android\sdk에 압축파일을 받고 압축을 푼다.

C:\Android\sdk\adt-bundle-windows-x86_64-20130911

이런식으로 폴더가 생기고 안에는 sdk와 이클립스 폴더가 있다.

android sdk 도 마찬가지로 환경변수를 설정해준다.

폴더 안에 있는 SDK Manager를 실행한다.

sdk 버전 4.3, 4.2.2 , 4.1.2 , 2.3.3 , 2.2 등을 선택하고 인스톨을 눌러 설치하자

 

 

설치하는데 꽤 오랜시간이 걸립니다.

설치하는동안 안드로이드 sdk 환경변수를 설정합니다.

path 에 뒤에 android sdk 설치 경로를 붙입니다.

예) C:\Android\sdk\adt-bundle-windows-x86_64-20130911\sdk\tools

 


cgwin 설치

http://cygwin.com/install.html

위 링크를 클릭하고 설치합니다.

Debel 및 Editors 옆에 Default를 클릭하면 Install 로 바뀌고 두개를 Install로 바꾸고

다음을 클릭하고설치합니다. 

 

 


 

안드로이드 ndk 설치

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

위 링크에서 ndk 최신 버전을 다운받습니다.

현재 최신버전은 r9입니다.

예) C:\Android\ndk

이 폴더에 최신파일을 받았습니다. 최신파일을 받고 압축을 풉니다.

압축을 풀고 환경변수를 설정합니다.

변수이름 : NDK_ROOT 

변수 값 : C:\Android\ndk\android-ndk-r9

추가합니다.


이클립스 ADT 설치

방금 sdk를 다운받은 경로안에 이클립스가 있습니다 이클립스를 실행합니다.

C:\Android\sdk\adt-bundle-windows-x86_64-20130911\eclipse

eclipse.exe 파일은 자주 사용하니 바탕화면에 바로가기를 만들어 놓습니다.

 이클립스를 실행하고 Help-Install new Software를 클릭합니다.

 Work With 옆에 add 버튼을 클릭합니다.

위 창에 이름과

AndroidAdt

http://dl-ssl.google.com/android/eclipse/

를 입력합니다. ok를 누르면

 

아래 처럼 Developer Tools와 Ndk Plugins를 선택하고 다음을 클릭하고 설치합니다.

 

설치를 다하고 나면

 

 

yes 버튼을 눌러 다시 시작합니다.

 

 

'잡다한것들전부 > 세팅' 카테고리의 다른 글

cocos2d-x 기본 세팅 - 4  (2) 2013.09.21
cocos2d-x 기본 세팅 - 3  (0) 2013.09.20
cocos2d-x 기본 세팅 - 2  (0) 2013.09.19
cocos2d-x 기본 세팅 - 1  (0) 2013.09.19
Trackback 0 And Comment 0
prev | 1 | next