'안드로이드'에 해당되는 글 8건
- 2014.04.02 유니티 안드로이드 확장 개발 - jar 파일(이클립스연동) (3)
- 2014.01.08 [Action] cocos2d-x 액션 사용법
- 2013.09.22 챕터 6 - 씬을 전환하는 방법 (1)
- 2013.09.22 챕터 5 - 음악 재생 및 이펙트 효과음 재생 하는 법
- 2013.09.22 챕터 4 - 충돌 체크하는 법
- 2013.09.21 Tutorial - cocos2d-x 로 간단한 게임 만들기
- 2013.09.20 cocos2d-x 기본 세팅 - 3
- 2013.09.19 cocos2d-x 기본 세팅 - 1
유니티는 다양한 에셋들을 사용해서 개발의 편의성을 높이고 있습니다.
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!");)하는 구조입니다.
할당후 안드로이드 단말기에서 빌드를 하면 아래와 같이 로그를 출력할 것입니다.
'유니티 > 스크립트' 카테고리의 다른 글
| PlayerPrefs 배열로 저장하기. (0) | 2014.04.08 |
|---|---|
| NGUI 스크롤뷰 grid 아이템 생성시 순서대로 생성되게 하기. (0) | 2014.04.08 |
| 유니티 안드로이드 확장 개발 - jar 파일(이클립스연동) (3) | 2014.04.02 |
| 인앱빌링 구현하기 ver3 - 구글번역 (0) | 2014.03.28 |
| 안드로이드 서버 php 통신(간단히) (11) | 2014.03.27 |
| 유니티 xml 파일 로드 (0) | 2014.03.18 |
-
-
Ku 2014.10.21 23:04
실행하였다니 아래와 같은 오류가 발생하였습니다 ㅠㅠ 왜인지 감이 안옵니다 ㅠㅠㅠㅠㅠㅠ
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)
]
Actions
Actions 클래스는 CCNode 를 상속받는 모든 객체에 명령을 부여합니다. 액션은 오브젝트의 위치, 회전, 크기 기타등등 값들을 수정합니다
일정기간동안 수정하는 작업이면 -> CCIntervalAction actions 그렇지 않으면 -> CCInstantAction 입니다.
예를들면 CCMoveBy는 일정기간동안 수정합니다. CCIntervalAction 액션입니다.
액션의 사용 예:
가속 관련된 액션들 (점점 빨라지거나 느려지는등)
- CCEaseIn
- CCEaseOut
- CCEaseInOut
- CCSpeed
Etc. (See the ActionsEaseTest.cpp example for more info)
CCActionManager를 사용하면 중간에 액션을 일시정지 하고 재시작 할수도있다.(해당객체의)
Basic Actions
Basic actions are the ones that modify basic properties like:
Position(위치수정관련)
CCMoveBy
CCMoveTo
CCJumpBy
CCJumpTo
CCBezierBy
CCBezierTo
CCPlace
Scale(크기수정관련)
Rotation(회전)
Visibility(보이는거)
CCShow
CCHide
CCBlink
CCToggleVisibility
Opacity(알파값)
Color(색깔)
Example:
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(2, ccp(50,10)); //좌표값에 50, 10으로 이동 -> 50,10
'잡다한것들전부 > Basic Concepts' 카테고리의 다른 글
| [Effects] cocos2-dx 이펙트에 대해서 알아보자! (0) | 2014.01.09 |
|---|---|
| [Basic Concepts] Director, Scene, Layer, Sprite 개념 정리 (0) | 2014.01.09 |
| [Coordinate System] cocos2d-x 좌표 시스템 (0) | 2014.01.09 |
| [Animations] cocos2d-x 에니메이션 적용하기 (0) | 2014.01.08 |
| [Action] cocos2d-x 액션 사용법 (0) | 2014.01.08 |
| cocos2d-x 기본 컨셉 (0) | 2013.09.23 |
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);
}
모든 준비가 끝났습니다. 컴파일을하고 실행을 합시다.
적. 표창 ,배경음악, 승리화면 등 모두 완성 했습니다.
'잡다한것들전부 > Tutorial' 카테고리의 다른 글
| 챕터 6 - 씬을 전환하는 방법 (1) | 2013.09.22 |
|---|---|
| 챕터 5 - 음악 재생 및 이펙트 효과음 재생 하는 법 (0) | 2013.09.22 |
| 챕터 4 - 충돌 체크하는 법 (0) | 2013.09.22 |
| 챕터 3 - 표창을 발사하는 방법 (0) | 2013.09.21 |
| 챕터 2 - 스프라이트를 움직이는 방법 (0) | 2013.09.21 |
| 챕터 1 - 스프라이트를 추가하는 방법 (0) | 2013.09.21 |
이번 챕터에서는 우리는 배경음악 및 게임내 효과음을 재생하는 방법을 배울것입니다.
약간의 코드만을 추가하는것만으로도 쉽게 음악을 재생할수있습니다.
cocos2d-x 에서는 SimpleAudioEngine가 존재합니다.
먼저 첨부파일 2개를 다운받으시고 Resources 폴더에 집어넣으세요
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");
컴파일하고 실행을 하면 소리가 재생될것입니다.
'잡다한것들전부 > Tutorial' 카테고리의 다른 글
| 챕터 6 - 씬을 전환하는 방법 (1) | 2013.09.22 |
|---|---|
| 챕터 5 - 음악 재생 및 이펙트 효과음 재생 하는 법 (0) | 2013.09.22 |
| 챕터 4 - 충돌 체크하는 법 (0) | 2013.09.22 |
| 챕터 3 - 표창을 발사하는 방법 (0) | 2013.09.21 |
| 챕터 2 - 스프라이트를 움직이는 방법 (0) | 2013.09.21 |
| 챕터 1 - 스프라이트를 추가하는 방법 (0) | 2013.09.21 |
주인공은 표창을 발사한다 하지만 적들은 죽지않는다
이번 챕터에서는 표창과 적들의 충돌체크 방법을 소개한다.
게임에서 우리는 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));컴파일을 하고 난후면 표창을 던지면 적이 죽는 모습을 볼수 있을 것이다.
'잡다한것들전부 > Tutorial' 카테고리의 다른 글
| 챕터 6 - 씬을 전환하는 방법 (1) | 2013.09.22 |
|---|---|
| 챕터 5 - 음악 재생 및 이펙트 효과음 재생 하는 법 (0) | 2013.09.22 |
| 챕터 4 - 충돌 체크하는 법 (0) | 2013.09.22 |
| 챕터 3 - 표창을 발사하는 방법 (0) | 2013.09.21 |
| 챕터 2 - 스프라이트를 움직이는 방법 (0) | 2013.09.21 |
| 챕터 1 - 스프라이트를 추가하는 방법 (0) | 2013.09.21 |
에 있는 간단한 게임 만들기를 한글로 번역해서 올릴 생각입니다.
정말 기초 게임이니 초보자들만 보시길 추천해드립니다.
'잡다한것들전부 > Tutorial' 카테고리의 다른 글
| 챕터 5 - 음악 재생 및 이펙트 효과음 재생 하는 법 (0) | 2013.09.22 |
|---|---|
| 챕터 4 - 충돌 체크하는 법 (0) | 2013.09.22 |
| 챕터 3 - 표창을 발사하는 방법 (0) | 2013.09.21 |
| 챕터 2 - 스프라이트를 움직이는 방법 (0) | 2013.09.21 |
| 챕터 1 - 스프라이트를 추가하는 방법 (0) | 2013.09.21 |
| Tutorial - cocos2d-x 로 간단한 게임 만들기 (0) | 2013.09.21 |
새로운 프로젝트 생성
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 |
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\sdkcgwin
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\eclipseeclipse.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 |
5.zip

