'cocos2d'에 해당되는 글 8건
- 2014.01.09 cocos2d-x v3.0 Beta 출시 되었습니다.
- 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
cocos2d-x v3.0 Beta
Highlights
- New renderer. Renderer has being decoupled from the Scene Graph. It supports auto-batching and auto-culling.
- Added template containers.
cocos2d::Map<>,cocos2d::Vector<> - Label supports: shadow, glow and outline (beta)
- Added Joint support in the physics subsystem
- Added Console: A simple TCP console that lets you debug and inspect your game remotely
tools/project_creator/project_creator.pyincludes a GUI to simplify the game creation process. It also allows you to create the game in any given directory.- Added support to build Android's APK files in the
android-build.pyscript - Added
Scheduler::performFunctionInCocosThread(). It supports executing a function in the cocos2d thread Directoremits the following events using theEventDispatcher:AFTER_UPDATE,AFTER_DRAW,AFTER_VISITandPROJECTION_CHANGED- Added
Cocos2dxActivity.javawhich inherits from native activity. Ingetrating 3rd Android SDK would be much easilier on v3.0.
Read more about all the new features at cocos2d-x v3.0 release notes
알파에서 베타버전으로 출시되이써습니다.
정식버전이 기대됩니다.
'잡다한것들전부 > 소식' 카테고리의 다른 글
| cocos2d-x v3.0 Beta 출시 되었습니다. (0) | 2014.01.09 |
|---|
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

