●안드로이드 개발환경 세팅

1. java SDK 또는 JRE(Java Runtime Enviroment) - 개발툴을 실행하기 위한 Java VM

2. Android SDK - 개발에 필요한 안드로이드 라이브러리

3. 이클립스(Eclipse) - 개발툴

4. Developer Tools(ADT, Eclipse Plugin) - 개발에 필요한 이클립스 플러그인 형태의 개발도구

5. 이클립스 설정





1. java SDK 또는 JRE(Java Runtime Enviroment)

- 자바를 사용해서 개발하려면 반드시 java SDK가 설치되어 있어야 한다.


아래 주소에서 Java SE Development를 다운받아 설치한다

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


시스템 환경변수에서 "JAVA_HOME"을 설정한다

내컴퓨터->속성->설정변경->고급->환경변수->변수이름에 JAVA_HOME추가 변수값에 설치주소(ex. C:\myjava\jdk6) 추가


시스템 환경변수에 "PATH"에 "설치주소/bin"을 추가한다

ex) "C:\myjava\jdk6\bin"을 PATH변수값 제일 앞에 추가


④콘솔 명령 창에서 "java" 또는 "java -version"을 입력하여 정상적으로 출력되는지 확인한다

시작->실행->실행창에서 cmd입력 ->java 또는 java -version입력



2. Android SDK

- 안드로이드 개발을 하려면 반드시 안드로이드 SDK가 있어야 한다. 설치형과 바이너리형 두가지가 있는데 우선 바이너리형을 다운받는다.


아래 주소에서 Android SDK를 다운받아 압축을 푼다

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





3. 이클립스(Eclipse)

- 원칙적으로 위 2번까지만 해도 안드로이드 개발이 가능하다. 개발 시간이 오래 걸릴 뿐이다. 개발의 편의성을 위해 이클립스를 다운 받는다.

요즘 안드로이드 스튜디오라는 자체 툴이 나와있지만 우선 이클립스를 다운받기로 한다.


아래 주소에서 "Eclipse IDE for Java Developer"를 다운받아 설치한다

http://www.eclipse.org/downloads/


('내컴퓨터->오른쪽버튼->속성'에 가면 32bit인지 63bit인지 알수 있다.)

(EE Developer는 웹개발용이다.)

(이클립스는 별도의 설치과정 필요 없이 그냥 압축만 해제하여 사용하면 된다.)



4. Developer Tools(ADT, Eclipse Plugin)

- 이클립스에서 안도르이드 개발을 도와주는 이클립스 플러그인이다.


이클립스를 실행한 후, 상단 메뉴에서 Help->Install New Software를 선택한다.


Work with 항목 우측의 "Add..." 버튼을 클릭한 후

Name에 "Android ADT", Location에 "https://dl-ssl.google.com/android/eclipse"를 입력한다


목록에서 "Android DDMS"와 "Android Developer Tools" 선택후 Next클릭

(목록에서 검색이 안될경우 https에서 http로 바꾼 다음 다시 시도)


④약관 동의후 finish 클릭


5. 이클립스 설정 및 SDK 업데이트 

- 이클립스를 실행하고 다운받은 안드로이드 SDK 경로를 선택한다. 그 후 SDK 업데이트를 한다. 용량이 대략 15G정도 되기 때문에 하드용량을 확인한 후 업데이트 한다.


이클립스를 실행한 후, 상단 메뉴에서 Window->Preference를 클릭하고 Android카테고리를 선택한 후, "SDK Location"에 다운받은 Android SDK 경로를 입력후 ok버튼 누른다

( 상단메뉴->Window->Preference->Android카테고리->SDK Location에 경로 입력 )

ex)C:\android_sdk


상단 메뉴 Window->"Android SDK and AVD Manager"를 클릭, "Installed Package" 카테고리를 선택한 후 "Update All"버튼을 선택한 후 필요한 패키지를 체크하고 "Install"버튼을 클릭한다

( 상단메뉴->Window->Android SDK and AVD Manager->Installed Package 카테고리->Update All->Install )

("Android SDK and AVD Manager"버튼이 분리되어 있는 경우도 기능은 같으니 그냥 하면 된다.)

Android SDK and AVD Manager



③가상 머신 설정(속도가 느리기 때문에 본인 안드로이드 폰으로 테스트하는게 빠르고 좋다.)

상단메뉴 Window->Android SDK and AVD Manager에서 "Virtual Device카테고리 선택하고 New클릭, Name에 적당한 이름 입력, Target에 애플리케이션이 구동될 안드로이드 OS를 선택, SD Card에는 적당한 용량 입력, Skin에는 AVD의 해상도를 선택

( 상단메뉴->Window->Android SDK and AVD Manager->Virtual Device->Newl->Name, Target, SD Card, Skin 입력 )





※핸드폰으로 테스트 할 경우 삼성 갤럭시의 경우 설정->개발자옵션->usb 디버깅을 체크한다.






Posted by -현's-

댓글을 달아 주세요



이즈 액션(Ease Action)

- 전체 액션시간은 수정하지 않고 내부의 액션 속도를 조절한다.


CCEaseIn - 액션의 끝이 빨라진다.

CCEaseOut - 액션의 처음이 빨라졌다가 끝이 느려진다.

CCEaseInOut - 액션의 처음이 느렸다가 중간에 빨라지고 끝에서 느려진다.



void HelloWorld::doAction(CCObject* pSender) 

{

//액션 정의

CCActionInterval* move=CCMoveBy::create(2,ccp(100,0));


//빨라지기

CCActionInterval* move_ease_in=CCEaseIn::create(move, 2);

//느려지기

CCActionInterval* move_ease_out=CCEaseOut::create(move, 2);

//빨라졌다 느려지기

CCActionInterval* move_ease_inout=CCEaseInOut::create(move, 2);

pMan->runAction(move_ease_in);

//pMan->runAction(move_ease_out);

//pMan->runAction(move_ease_inout);

}









●콜백 액션

- 액션에서 메서드를 호출하는 것이다. 

CCCallFunc 액션에서 메서드를 호출하게 한다. CCCallFuncN은 파라미터로 노드를 삽입한다. CCCallFuncND는 노드와 포인터형 데이터를 파리미터로 사용한다. 액션이 끝나고 어떤 동작을 수행해야 할 때 사용한다.



- HelloWorldScene.h


#ifndef __HELLOWORLD_SCENE_H__

#define __HELLOWORLD_SCENE_H__


#include "cocos2d.h"


#include "Box2D/Box2D.h"


#include "SimpleAudioEngine.h"


class HelloWorld : public cocos2d::CCLayerColor

{

public:

    virtual bool init();  


    static cocos2d::CCScene* scene();

    

    CREATE_FUNC(HelloWorld);


cocos2d::CCSprite* pMan;

void doAction(CCObject* pSender);

void callback1();

void callback2(CCNode* sender);

void callback3(CCNode* sender, void* data);

};


#endif  // __HELLOWORLD_SCENE_H__



- HelloWorldScene.cpp


#include "HelloWorldScene.h"


using namespace cocos2d;


CCScene* HelloWorld::scene()

{

CCScene *scene=CCScene::create();


HelloWorld *layer=HelloWorld::create();

scene->addChild(layer);


return scene;

}


// on "init" you need to initialize your instance

bool HelloWorld::init()

{

if(!CCLayerColor::initWithColor(ccc4(255,255,255,255)))

{

return false;

}


///////////////////////


//메뉴 아이템 생성 및 초기화

CCMenuItemFont* pMenuItem1=CCMenuItemFont::create(

"Action", 

this, 

menu_selector(HelloWorld::doAction));

pMenuItem1->setColor(ccc3(0,0,0));

//메뉴 생성

CCMenu* pMenu=CCMenu::create(pMenuItem1, NULL);

//메뉴 위치 지정

pMenu->setPosition(ccp(240, 50));


//레이어에 메뉴 객체 추가

this->addChild(pMenu);



//Grossini 스프라이트 추가

pMan=CCSprite::create("Images/grossini.png");

pMan->setPosition(ccp(50,200));

this->addChild(pMan);

return true;

}


//doAction 메서드 정의

void HelloWorld::doAction(CCObject* pSender)

{

//Grossini 스프라이트 제거

pMan->removeFromParentAndCleanup(true);


//태그로 레이블 제거

this->removeChildByTag(1, true);

this->removeChildByTag(2, true);

this->removeChildByTag(3, true);


//Grossini 스프라이트 추가

pMan->CCSprite::create("Images/grossini.png");

pMan->setPosition(ccp(50,160));


this->addChild(false);

pMan->setVisible(false);


CCFiniteTimeAction* action=CCSequence::create(

CCPlace::create(ccp(200,200)),

CCShow::create(),

CCMoveBy::create(1, ccp(200,0)),

CCCallFunc::create(this, callfunc_selector(HelloWorld::callback1)),

     CCCallFuncN::create(this, callfuncN_selector(HelloWorld::callback2)),

     CCCallFuncND::create(this, callfuncND_selector(HelloWorld::callback3), (void*)0xbebabeba),

NULL);

pMan->runAction(action);

}


#pragma mark -

#pragma mark Callback Functions


void HelloWorld::callback1(){

CCLabelTTF *label=CCLabelTTF::create("callback 1 called", "Marker Felt", 16);

label->setPosition(ccp(120, 160));

label->setColor(ccBLACK);

label->setTag(1);

addChild(label);

}


void HelloWorld::callback2(CCNode* sender){

CCLabelTTF *label=CCLabelTTF::create("callback 2 called", "Marker Felt", 16);

label->setPosition(ccp(120, 160));

label->setColor(ccBLACK);

label->setTag(2);

addChild(label);

}


void HelloWorld::callback3(CCNode* sender, void* data){

CCLabelTTF *label=CCLabelTTF::create("callback 3 called", "Marker Felt", 16);

label->setPosition(ccp(120, 160));

label->setColor(ccBLACK);

label->setTag(3);

addChild(label);

}










'프로그래밍 > cocos2d-x' 카테고리의 다른 글

cocos2d-x 애니메이션  (0) 2013.05.31
cocos2d-x 트랜지션(Transition) 추가,삭제,교체  (0) 2013.05.30
cocos2d-x 액션3  (0) 2013.05.29
cocos2d-x 액션2  (0) 2013.05.28
cocos2d-x 액션1  (0) 2013.05.28
cocos2d-x 메뉴  (0) 2013.04.27
Posted by -현's-

댓글을 달아 주세요


●CCSequence

- 액션의 순서를 정하고 순차적으로 실행한다.


void HelloWorld::doAction(CCObject* pSender)

{

//액션 정의

CCActionInterval* action1=CCMoveTo::create(2,ccp(100,200));

CCActionInterval* action2=CCRotateBy::create(2,90);

CCActionInterval* action3=CCScaleTo::create(2, 2.0);


CCFiniteTimeAction* seq=CCSequence::create(action1, action2, action3, NULL);


pMan->runAction(seq);

}

 








●CCSpawn

- 등록된 모든 액션을 동시에 시행한다.


void HelloWorld::doAction(CCObject* pSender)

{

//액션 정의

CCActionInterval* action1=CCMoveTo::create(2,ccp(100,200));

CCActionInterval* action2=CCRotateBy::create(2,90);

CCActionInterval* action3=CCScaleTo::create(2, 2.0);


CCFiniteTimeAction* seq=CCSpawn::create(action1, action2, action3, NULL);


pMan->runAction(seq);








●CCDelayTime

- 스퀀스(Sequence)로 액션을 등록 떄 일정시간 지연 효과를 준다.


//doAction 메서드 정의

void HelloWorld::doAction(CCObject* pSender)

{

//액션 정의

CCActionInterval* action1=CCMoveTo::create(2,ccp(100,200));

CCActionInterval* action2=CCRotateBy::create(2,90);

CCActionInterval* action3=CCScaleTo::create(2, 2.0);


CCFiniteTimeAction* seq=CCSequence::create(action1, CCDelayTime::create(2), action2, action3, NULL);


pMan->runAction(seq);








●CCRepeat, CCRepeatForever

- CCRepeat는 지정한 횟수만큼 반복시키고, CCRepeatForever는 무한 반복시킨다.


void HelloWorld::doAction(CCObject* pSender)

{

//액션 정의

CCActionInterval* action1=CCMoveBy::create(2,ccp(100,0));

CCActionInterval* action2=CCRotateBy::create(2,90);

CCActionInterval* action3=CCScaleBy::create(2, 2.0);


CCFiniteTimeAction* seq=CCSequence::create(action1,CCDelayTime::create(2), action2, action3, NULL);


CCActionInterval* rep=CCRepeat::create(seq, 3);  // 무한반복하려면 CCRepeatForever::create(seq);


pMan->runAction(rep);

}










'프로그래밍 > cocos2d-x' 카테고리의 다른 글

cocos2d-x 트랜지션(Transition) 추가,삭제,교체  (0) 2013.05.30
cocos2d-x 액션3  (0) 2013.05.29
cocos2d-x 액션2  (0) 2013.05.28
cocos2d-x 액션1  (0) 2013.05.28
cocos2d-x 메뉴  (0) 2013.04.27
cocos2d-x 스프라이트(sprite)  (0) 2013.04.25
Posted by -현's-

댓글을 달아 주세요

 

 

●액션

- 많은 액션은  By와 To로 나뉘는데 By는 지정한 값만큼 변하는 것이고, To는 지정한 값으로 변하는 것이다.

- 위치관련 - CCMoveBy, CCMoveTo, CCJumpBy, CCJumpTo, CCBezierBy, CCBezierTo, CCPlace

- 크기관련 - CCScaleBy, CCScaleTo

- 회전관련 - CCRotateBy, CCRotateTo

- 가시성 - CCShow, CCHide, CCBlink, CCToggleVisibility

- 투명도 - CCFadeIn, CCFadeOut, CCFadeTo

- 색관련 - CCTintBy, CCTintTo

 

 

 

 

 

●액션 기본 예제 - HelloWorldScene.cpp의 doAction함수안에 여러가지 액션 함수를 넣어 액션 예제를 확인한다.


- HelloWorldScene.h


#ifndef __HELLOWORLD_SCENE_H__


#define __HELLOWORLD_SCENE_H__


#include "cocos2d.h"


#include "Box2D/Box2D.h"


#include "SimpleAudioEngine.h"


class HelloWorld : public cocos2d::CCLayerColor

{

public:

    virtual bool init();  


    static cocos2d::CCScene* scene();

    

    CREATE_FUNC(HelloWorld);


cocos2d::CCSprite* pMan;

void doAction(CCObject* pSender);

void doActionReverse(CCObject* pSender);

void doActionReset(CCObject* pSender);


};


#endif  // __HELLOWORLD_SCENE_H__


 



- HelloWorldScene.cpp


 #include "HelloWorldScene.h"


using namespace cocos2d;


CCScene* HelloWorld::scene()

{

CCScene *scene=CCScene::create();


HelloWorld *layer=HelloWorld::create();

scene->addChild(layer);


return scene;

}


// on "init" you need to initialize your instance

bool HelloWorld::init()

{

if(!CCLayerColor::initWithColor(ccc4(255,255,255,255)))

{

return false;

}


///////////////////////


//메뉴 아이템 생성 및 초기화

CCMenuItemFont* pMenuItem1=CCMenuItemFont::create(

"Action", this, menu_selector(HelloWorld::doAction));

pMenuItem1->setColor(ccc3(0,0,0));


CCMenuItemFont* pMenuItem2=CCMenuItemFont::create(

"ActionReverse", this, menu_selector(HelloWorld::doActionReverse));

pMenuItem2->setColor(ccc3(0,0,0));


CCMenuItemFont* pMenuItem3=CCMenuItemFont::create(

"ActionReset", this, menu_selector(HelloWorld::doActionReset));

pMenuItem3->setColor(ccc3(0,0,0));


//메뉴 생성

CCMenu* pMenu=CCMenu::create(pMenuItem1, pMenuItem2, pMenuItem3, NULL);


//메뉴 배치

pMenu->alignItemsHorizontally();


//메뉴 위치 지정

pMenu->setPosition(ccp(240, 50));


//레이어에 메뉴 객체 추가

this->addChild(pMenu);



//Grossini 스프라이트 추가

pMan=CCSprite::create("Images/grossini.png");

pMan->setPosition(ccp(50,200));

this->addChild(pMan);

return true;

}


//doAction 메서드 정의

void HelloWorld::doAction(CCObject* pSender)

{

//액션 정의

}


//doActionReverse 메서드 정의

void HelloWorld::doActionReverse(CCObject* pSender)

{

//액션 리버스 정의

}


//doActionReset 메서드 정의

void HelloWorld::doActionReset(CCObject* pSender)

{

//좌표 초기화

pMan->setPosition(ccp(50, 200));


//회전 초기화

pMan->setRotation(0.0);


//크기 초기화

pMan->setScale(1.0);

}

 

 

 



 

 

 



 

 

●MoveBy

- ccp(x, y) 해당 값만큼 이동한다.



 //doAction 메서드 정의

 void HelloWorld::doAction(CCObject* pSender)

 {

//액션 정의

CCActionInterval* myAction=CCMoveBy::create(2, ccp(400, 0));

pMan->runAction(myAction);

 }


 //doActionReverse 메서드 정의

 void HelloWorld::doActionReverse(CCObject* pSender)

 {

//액션 리버스 정의

CCActionInterval* myAction=CCMoveBy::create(2, ccp(400,0));

CCActionInterval* myActionBack=myAction->reverse();

pMan->runAction(myActionBack);

 }



 

 

 

 


JumpBy

- (2, ccp(400,0), 50, 3) - cpp(400,0) 만큼 이동하면서 50 높이만큼 3번 점프한다.


 //doAction 메서드 정의 

 void HelloWorld::doAction(CCObject* pSender)

 {

//액션 정으

CCActionInterval* myAction=CCJumpBy::create(2, ccp(400, 0), 50, 3);

pMan->runAction(myAction);

 }


 //doActionReverse 메서드 정의

 void HelloWorld::doActionReverse(CCObject* pSender)

 {

//액션 리버스 정의

CCActionInterval* myAction=CCJumpBy::create(2, ccp(400 ,0), 50, 3);

CCActionInterval* myActionBack=myAction->reverse();

pMan->runAction(myActionBack);

 } 


 



 

 


●CCBezierBy

- 해당값만큼 곡선으로 이동한다.



void HelloWorld::doAction(CCObject* pSender)

{

//액션 정의

ccBezierConfig bezier;

bezier.controlPoint_1=ccp(150, 150);

bezier.controlPoint_2=ccp(250, -150);

bezier.endPosition=ccp(350,0);


CCActionInterval* myAction=CCBezierBy::create(3, bezier);


pMan->runAction(myAction);

}


//doActionReverse 메서드 정의

void HelloWorld::doActionReverse(CCObject* pSender)

{

//액션 리버스 정의

ccBezierConfig bezier;

bezier.controlPoint_1=ccp(150, 150);

bezier.controlPoint_2=ccp(250, -150);

bezier.endPosition=ccp(350,0);


CCActionInterval* myAction=CCBezierBy::create(3, bezier);

CCActionInterval* myActionBack=myAction->reverse();


pMan->runAction(myActionBack);


}









CCPlace

- 해당 위치로 즉시 이동한다.



 void HelloWorld::doAction(CCObject* pSender)

{

//액션 정의

CCFiniteTimeAction* myAction=CCPlace::create(ccp(300,200));


pMan->runAction(myAction);



}










●CCScaleBy

- 해당 수치만큼 크기를 조절한다.


void HelloWorld::doAction(CCObject* pSender)

{

//액션 액션

CCActionInterval* myAction=CCScaleBy::create(2, 2.0);   //create(시간, 배수)


pMan->runAction(myAction);

}



//doActionReverse 메서드 정의

void HelloWorld::doActionReverse(CCObject* pSender)

{

//액션 리버스 정의

CCActionInterval* myAction=CCScaleBy::create(2, 2.0);

CCActionInterval* myActionBack=myAction->reverse();


pMan->runAction(myActionBack);


}









CCRotateBy

- 해당 각도만큼 회전한다.


//doAction 메서드 정의

void HelloWorld::doAction(CCObject* pSender)

{

//액션 액션

CCActionInterval* myAction=CCRotateBy::create(2, 90);


pMan->runAction(myAction);

}



//doActionReverse 메서드 정의

void HelloWorld::doActionReverse(CCObject* pSender)

{

//액션 리버스 정의

CCActionInterval* myAction=CCRotateBy::create(2, 90);

CCActionInterval* myActionBack=myAction->reverse();


pMan->runAction(myActionBack);


}








'프로그래밍 > cocos2d-x' 카테고리의 다른 글

cocos2d-x 액션3  (0) 2013.05.29
cocos2d-x 액션2  (0) 2013.05.28
cocos2d-x 액션1  (0) 2013.05.28
cocos2d-x 메뉴  (0) 2013.04.27
cocos2d-x 스프라이트(sprite)  (0) 2013.04.25
cocos2d-x CCLabelTTF  (0) 2013.04.22
Posted by -현's-

댓글을 달아 주세요



●메뉴 사용하기

- cpp에 메서드를 추가하려면 헤더파일에도 선언을 추가해야한다.





- HelloWorldScene.cpp dp  다음과 같이 입력해준다.










●메뉴 아이템에서 태그 사용하기

- 메뉴 아이템에 태그를 사용하면 같은 메서드에서 어떤 메뉴 아이템이 선택되었는지 구분할 수 있다.

- 헤더파일에 cpp에서 사용할 메서드를 선언해준다.







'프로그래밍 > cocos2d-x' 카테고리의 다른 글

cocos2d-x 액션2  (0) 2013.05.28
cocos2d-x 액션1  (0) 2013.05.28
cocos2d-x 메뉴  (0) 2013.04.27
cocos2d-x 스프라이트(sprite)  (0) 2013.04.25
cocos2d-x CCLabelTTF  (0) 2013.04.22
cocos2d-x Visual studio 프로젝트 생성할때 스크립트 오류  (0) 2013.04.19
Posted by -현's-

댓글을 달아 주세요




●CCNode
- CCNode는 cocos2d-x의 최상위 클래스로 cocos2d-x의 모든 클래스는 이 클래스를 상속받는다.
- CCNode는 자식노드를 가질수 있다.



●CCDirector
- 싱글톤클래스로 하나의 어플리케이션에서 하나의 인스턴스만 존재한다.
- 게임의 화면을 장면단위로 구성해서 처리할 수 있는 기능을 제공한다.
- 여러 장면들을 뒤로 가게 하거나 앞으로 가도록 하는 클래스이다.



●CCScene, CCLayer
- 일반적인 게임의 메인화면, 메뉴화면, 게임화면 등이다.
- CCScene은 터치이벤트, accelerometer 입력을 처리할 수 없다.
- CCLayer는 터치이벤트, accelerometer 입력을 처리할 수 있다.



●CCSprite
- 이미지 파일을 화면에 출력하는 역할을 한다.
- 이미지 파일과 관련된 여러가지 처리를 한다.



●CCAction
- 스프라이트의 액션에 관한 처리를 한다.
- 이동,회전,점프 등의 액션을 제공한다.



●cocos2d-x 좌표계
- cocos2d-x의 원점은 좌측하단이다.




●앵커포인트(AnchorPoint)
- 메뉴, 레이블, 스프라이트 등이 레이어나 장면에 포함될 때 기준이 되는 부분이다.











Posted by -현's-

댓글을 달아 주세요

●상단의 제목표시줄을 없애고 전체 화면(Full Screen)모드로 표시하기

- 매인 액티비티의 setContentView() 메서드 위에 설정한다.

 

- 프로그램 제목 표시줄 없애기

requestWindowFeature(Window.FEATURE_NO_TITLE);

 

- 상태표시줄 없애기

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

 

Posted by -현's-

댓글을 달아 주세요

 

●리지드 바디(RigidBody) 추가하기

- Plane오브젝트와 Cube오브젝트를 만들고 Cube오브젝트를 클릭한 상태에서 아래 그림처럼 RigidBody를 선택한다. 그리고 나서 ▶(플레이버튼)을 누르면 Cube가 아래로 떨어진다.

 

 

 

 

 

 

●RigidBody란 오브젝트에 물리적인 특성을 부여하는 컴포넌트이다. 외부에서 힘을 주어 이동시키는 오브젝트는 반드시 리지드바디 컴포넌트를 추가해야한다.

 

 

 

 

 

Mass - 질량. 질량이 작을수록 더 빨리 움직이고, 더 멀리 움직인다.

Drag - 저항. 이 값이 크면 속도가 떨어진다.

Angular Drag - 회원 운동 저항. 이 값이 0이면 한없이 굴러간다.

Use Gravity - 중력 사용 여부

Is Kinematic - 관절 운동 처리 여부

Collision Detection - 물체의 연속적인 충돌을 검사하는 방법

 

 

 

 

 

 

 

●오브젝트의 탄성계수 설정

 

 - 프로젝트 탭에서 우클릭->Import Package->Physic Materials 선택후 Import한다.

 

 

 

 

- Cube의 인스펙터에서 Bollider 부분의 Material 오른쪽 끝에 동그란 아이콘을 누른다. 그리고나서 원하는 Material을 선택한다.

 

 

 

 

 

 

Posted by -현's-

댓글을 달아 주세요

 

●디자인 탭에서의 마우스 버튼

 

- 왼쪽 버튼 - 게임 오브젝트 선택

 

- 오른쪽 버튼 - 화면 회원

 

- 마우스 휠 - 화면 확대/축소

 

- 휠 드래그 - 화면 이동

 

- alt+왼쪽버튼 - 화면 회전

 

- alt+오른쪽버튼 - 줌인/줌아웃

 

 

 

 

 

●File 메뉴

 

- Ctrl+N - 새 Scene 만들기

 

- Ctrl+O - Scene 열기

 

- Ctrl+S - Scene 저장

 

- Ctrl+Shift+S - 새 이름으로 Scene 저장

 

- Ctrl+Shift+B - Build 설정

 

- Ctrl+B - Build+Run

 

- Alt+F4 - 유니티 종료

 

 

 

 

●Edit 메뉴

 

- Ctrl+C/X/Y - 복사/잘라내기/붙여내기

 

- Ctrl+Z - 실행 취소

 

- Ctrl+Y - 되돌리기

 

- Ctrl+D - 오브젝트 복제

 

- Shift+Delete - 삭제

 

- F - 선택한 오브젝트 중앙 배치(하이어라키에서 오브젝트 선택후 커서를 디자인탭에 두고 F를 누른다.)

 

- Ctrl+F - 오브젝트 찾기

 

- Ctrl+A - 전체선택

 

- Ctrl+P - 게임 실행

 

- Ctrl+Shift+P - 게임 일시 정지

 

- Ctrl+Alt+P - 1단계씩 실행

 

 

 

 

 

●Assets 메뉴

 

- Ctrl+R - - 에셋 다시 읽기

 

 

 

 

 

●창/탭 이동

 

- Ctrl+1 - 디자인 탭으로 이동

 

- Ctrl+2 - 게임 창으로 이동

 

- Ctrl+3 - 인스펙터 탭으로 이동

 

- Ctrl+4 - 하이어라키 탭으로 이동

 

- Ctrl+5 - 프로젝트 탭으로 이동

 

- Ctrl+6 - 애니메이션 창 호출

 

- Ctrl+7 - 프로파일러 창 호출

 

- Ctrl+9 - 애셋 스토어 호출

 

- Ctrl+0 - 애셋 서버 호출

 

- Ctrl+Shift+C - 콘솔 창 호출

 

- Ctrl+좌우 - 다음 창으로 이동

 

- Ctrl+Shift+좌우 - 작전창으로 이동

 

 

 

 

●디자인 탭의 도구 버튼

 

- Q - 화면이동 선택

 

- W - 오브젝트 이동 선택됨

 

- E - 오브젝트 회원 선택됨

 

- R - 오브젝트 스케일 선택됨

 

- Z - Pivot/Center

 

- X - Local/Global

 

- V - 버텍스 스냅

 

 

 

 

●오브젝트 선택

 

- Ctrl+Alt+1~9 - 선택한 오브젝트 그룹화

 

- Ctrl+Shift+1~9 - 그룹화한 오브젝트 호출

 

 

 

 

 

Posted by -현's-

댓글을 달아 주세요

  1. Favicon of https://chocotart.tistory.com ChocoTart  댓글주소 수정/삭제 댓글쓰기 2014.05.16 13:19 신고

    몰르던 단축키 가 많네요~
    제 블로그에 퍼가고 싶은대 괜찮나요?
    괜찮으시 다면 퍼가는 방법이 따로잇는건가요?
    없다면 내용만 카피 해 가고
    출처를 남길게요~

 

●옵션메뉴는 메뉴버튼을 눌렀을 때 나타나는 메뉴이다.

안드로이드는 보통 버튼을 '홈버튼,이전버튼,메뉴버튼' 3가지 버튼을 가지고 있다.

화면 하단에 표시할수 잇는 옵션 메뉴 항목은 최대 6개가지이고 6개 초과한 항목은 목록형태로 나타난다.

 

 

 

 

●이클립스 상단의 Source항목에서 Override/Implement Methods를 선택하고 창이 나타나명 onCreateOptionsMenu와 onOptionsItemSelected()를 선택한다. 이렇게 안하고 그냥 직접 코딩해도 상관없다.

 

 

 

 

onCreateOptionsMenu()

- 메뉴 항목 추가

menu.add(그룹번호, 메뉴식별번호, 배치순서, 메뉴에 표시할 타이틀);

 

- 아이콘 추가와 단축키 추가 - 선택사항이므로 해도되고 안해도 된다.

menu.add(0,1,0,"타이틀")

       .setShortcut("0","1")                                     //단축키는 0 또는 1

       .setIcon(android.R.drawable.아이콘이름);       //아이콘 설정

 

 

 

 

●OptionsItemSelected()

- 보통 다음과 같이 작성한다.

 

-여기서 case 1,2,3,4할때 숫자는 메뉴식별번호이다.

 public boolean onOptionsItemSelected(MenuItem item) {
  switch(item.getItemId()){
    case 1:
     //처리하는 부분
     break;
    case 2:
     //처리하는 부분
     break;
    case 3:
     //처리하는 부분
     break;
    case 4:
     //처리하는 부분
     break;  
    }
    return true;
 }

 

 

 

●옵션 메뉴 표시 예제

 

 

 

 

 

Posted by -현's-

댓글을 달아 주세요