Cocos2D-X 를 이용하여 게임을 개발하기 위한 기초적인 프로젝트 생성방법에 대하여 설명드리겠습니다.


설치는 기본적으로 맥 베이스로 설명드리겠습니다.


 일단 Cocos2D-X 2.2 와 2.1.5 의 차이로 XCode 에 템플릿을 등록하는 install-templates-xcode.sh 이 없어졌습니다. 그래서 프로젝트 생성방법이 조금 다릅니다.


1. Cocos2D-X 다운받기



 일단 Cocos2D-X 를 다운받도록합니다. Cocos2D는 오픈소스로 무료로 다운받을수 있습니다.


다운받으러 가기 : 링크 



2. 프로젝트 생성하기



 다음은 프로젝트 생성하기 입니다. 다운받은 파일의 압축을 푸시고 터미널에서 ( 윈도우즈는 Command ) $COCOS2D_ROOT/tools/project-creator/ 로 이동하여 create_project.py 를 실행하여 보도록합니다. ( 맥에서는 기본적으로 Python 이 설치되어 있기 때문에 상관없지만 Windows 에서는 Python을 설치하셔야 합니다. )



실행을 해보셨다면 위와 같은 설명을 보실수 있습니다. 이는 프로잭트 생성방법에 관한것인대요. 


설명드리자면


./create_project.py -project 프로젝트_이름 -package 프로젝트_패키지( Identifier ) -language 프로그래밍 언어


로 보시면 될것입니다. 언어는 Cpp( C++ ) , Lua , javascript 를 지원합니다.


 만약 제가 fortune 라는 프로젝트를 생성한다고 한다면


./create_project.py -project fortune -package com.appgd.fortune -language cpp


라고 생성할 것입니다.


3. 플렛폼별 실행하여 보기 ( XCode, MAC )




프로젝트 생성시 아래와 같이 프로젝트 파일이 생성된것을 볼수 있습니다.


프로젝트 생성시 위와 같이 플렛폼별로 생성된 파일들을 볼수 있다.


IOS 나 MAC 의 경우 아래와 같이 xcodeproj 파일을 실행하여 바로 시뮬레이터를 실행하여 보시면됩니다.



 시뮬레이터 실행시 아래와 같이 cocos2dx 프로젝트가 디폴트로 설정되어서 실행이 되지 않될수도 있습니다. 아래와 같이 프로젝트를 어플리케이션으로 변경후 타겟 디바이스를 지정하여 주시기 바랍니다. ( IOS,  MAC 공통 )



 야래와 같이 컴파일링을 시작합니다. 조금 기다리셔야 합니다.



IOS 기본 프로젝트가 실행된 모습



MAC 기본 프로젝트가 실행된 모습




3-1. 플렛폼별 실행하여 보기 ( Android )



Android 의 경우가 조금 복잡한대요.


일단 Android 개발환경이 모두 설치된 상황에서 ( 참고 : http://kr.tutorialboat.com/35 ) NDK 를 추가적으로 다운받습니다.

( NDK를 사용하는 이유는 위에서 제가 cpp로 코드를 짜겠다고 설정하였기 때문입니다.  ) - ps . Windows의 NDK 설치 방법은 다릅니다. C++ 빌더를 추가적으로 설정해 주셔야 합니다.


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


이제 다운받은 NDK 의 압축을 풀어 주시고 eclipse 를 켜주도록합니다.


Eclipse -> 환경설정으로 이동하여


아래와 같이 이전에 받았던 NDK를 NDK_ROOT 로 지정하여 value 에는 폴더의 경로를 지정하시고 확인을 하여 주시기 바랍니다.



이제 프로젝트를 불러올 차례 인대요.


생성한 프로젝트를 바로 불러왔으면 좋겠지만 먼저 cocos2dx 의 java lib 를 import 시켜주셔야 합니다.


아래와 같이 File -> Import 로 이동하여



Existing Android Code Into Workspace 를 선택하여 줍니다.



좀 길긴하지만 cocos2dx > platform > android > java 를 선택하여 불러 오도록합니다.



Finish 를 눌러서 완료 합니다.



이제 위에서 생성한 프로젝트를 불러올 차례 입니다.


File > New > Project ... 을 선택



아래와 같이 Android Project from Existing Code 를 선택합니다.



그리고 아래와 같이 Cocos2d 폴더 안의 projects 폴더에서 생성한 프로젝트안의 proj.android 를 지정하여 불러 오도록합니다.



이제 모두 불러 오셨다면 libcocos2dx 라는 프로젝트와 함께 설정했던 프로젝트가 같이 있게 될것입니다.



이제 불러온 프로젝트를 클릭하시고 VM 혹은 장비로 실행하여 보시기 바랍니다.


아래는 제 장비인 Optimus LET 에서 실행한 모습입니다.



즐거운 개발 되시기 바랍니다. ^^



출처 : http://kr.tutorialboat.com/42


CCSprite 복사하기.

setDisplayFrame()을 이용하여 동일한 내용을 갖도록 복사.


ex)

CCSprite *sprite1 = CCSprite::create(“sprite.png”);

CCSprite *sprite2 = CCSprite::create();

sprite2->setDisplayFrame(sprite1->displayFrame()):




이클립스에서 Cocos2dxActivity cannot be resolved to a type라는 오류메세지가 떴을때.



혹시 proj.android/src 폴더에 들어가 보시면 org/cocos2dx 폴더가 있을겁니다 이 내부가 비어 있는건 아닌지 확인해 보세요. 원래 create-android-project.sh를 실행했을때 이부분이 자동으로 채워져야 하는데 왠일인지 생성이 되지 않는 경우가 있습니다. 이런경우엔 수동으로 복사해 주면 되는데요. cocos2d-2.0-x-2.0.4/cocos2dx/platform/android/java/src/에 들어가보시면 같은 구조의 디렉토리가 존재합니다. 이안에 있는 org 폴더를 통채로 복사해서 proj.android/src/ 에 그대로 복사해 붙여 넣은후 eclipse 에서 f5버튼으로 reflash 한후에 다시 빌드해 보시기 바랍니다. ^^




출처 : http://blog.daum.net/synsy/7664321

$nano /etc/ssh/sshd_config


열 포트번호 추가


Port 7022  


$service ssh restart


$sudo apt-get install php5-gd

$sudo /etc/init.d/nginx restart

$reboot



리붓해줘야 적용이되더라.

백업
MySQL 데이터를 백업하는 방법은 크게 물리적 백업과 논리적 백업이 있다. 

1. 물리적 백업
 - 물리적 백업은 MySQL DB의 물리 파일을 백업하는 것이다. 
 - 장점 
  + 물리적 백업은 속도가 빠르며 작업이 단순하다.
 - 단점
  + InnoDB의 물리적 파일은 상응하는 논리 백업에 비해 상당히 크다.
  + 데이터 복구시에 문제가 발생할 소지가 있으면 문제발생시 원인파악 및 해결이 어렵다.

2. 논리적 백업
 - 논리적 백업은 mysqldump 혹은 기타 툴을 이용해서 SQL문을 갖는 텍스트 파일을 생성하는 것이다. 
 - 장점 
  + 논리적 백업은 데이터를 검토할 수 있다.
  + 복원작업이 수월하며, 물리적 백업에 비해 복원시 데이터 손상을 막아주며, 문제 발생시 원인 파악및 해결하기가 수월하다. 
 - 단점
  + 백업/복원시 시스템 리소스를 더 많이 소모한다. (물리적 백업은 파일 copy만 하면 되니까!!!)
  + 부동 소수점 데이터의 백업&복원시 데이터 정확성을 잃게 될 수 있다.

3. mysqldump 사용법
 $ mysqldump -u[userId] -p[password] --all-databases > dump.sql  // 서버에 있는 모든 것의 논리 백업 생성
 $ mysqldump -u[userId] -p[password] --databases [DB명] > dump.sql // 특정 데이터베이스만의 논리 백업 생성
 $ mysqldump -u[userId] -p[password] [DB명] [테이블명]

 
- 기타 옵션
   -A, --all-databases : 모든 DB 덤프
   -B, --databases : 특정 DB를 덤프

   --opt : 버퍼링을 비확성화 하고, 많은 데이터를 덤프에 있는 소량의 SQL구문에 기록해 더효율적으로 동작하다록 한다.
   --allow-keywords, --quote-names : 예약어를 사용하는 테이블을 덤프하고 복원할 수 있게 한다.
   --lock-alltables : 전역적으로 일관된 백업을 만들도록 "FLUSH TABLES WITH READ LOCK"을 사용한다. 
   --tab : "SELECT INTO OUTFILE"로 파일을 덤프하여, 덤프 및 복원 속도가 매우 빠르다.
   -d, --no-data :  데이터는 제외하고 스키마만 덤프
   -t, --no-create-info : 스키마는 제외하고 

4. dump 파일 복원 방법
 - mysql -u [userId] -p [password] [DB명] < dump.sql
 - mysql 접속한 후 아래의 명령 실행
     mysql> source dump.sql

출처 : http://dimdim.tistory.com/entry/MySQL-%EB%B0%B1%EC%97%85-%EB%B0%8F-%EB%B3%B5%EA%B5%AC


$ who
userid1  pts/0              2010-03-17 15:12 (xxx.xxx.xxx.xxx)
userid2  pts/1              2010-03-17 15:15 (xxx.xxx.xxx.xxx)
여기서 첫번재 userid1 을 로그아웃 시키고 싶다면
$ skill -kill -t pts/0
$ who
userid2  pts/1              2010-03-17 15:15 (xxx.xxx.xxx.xxx)

http://www.slideshare.net/slideshow/embed_code/27228126




List 타입인 'Entry' <span> {{ Entry|length }} </span>

<span> {{ Entry|count }} </span>


이런방식으로 쓰면됨. 


출처 : http://stackoverflow.com/questions/1465249/jinja2-get-lengths-of-list




개발환경 할 때마다 찾아보게 되어 정리해둡니다. (update 2013.08.12)



1. 이클립스 다운로드



2. 안드로이드 sdk 다운로드



Get the SDK 로 이동



이클립스IDE는 받았으므로, SDK만.



3. 안드로이드 sdk 경로를 이동

[터미널] (다운로드 폴더에 받은 경우)
$ : cd downloads 
$ : mv android-sdk-macosx /Users/coz/library


[파인더에서 이동하기]

android-sdk-macosx 폴더 복사 후

상단 바의 이동을 누르고, 키보드의 [옵션]버튼을 누르면 [라이브러리] 항목이 생김.
클릭 및 폴더 복사




4. 경로 설정


[터미널]
$ : cd
$ : vi .bash_profile
$ : i (입력모드)

vi 편집기로 bash_profile이 열립니다. i를 누르면 편집모드가 됩니다.

아래의 경로를 입력 후

export ANDROID_SDK_ROOT="/Users/유저네임/library/android-sdk-macosx"
export PATH="$PATH:$ANDROID_SDK_ROOT/tools"


esc 누르고
:wq ( 저장 후 종료 타이핑 후 엔터)

$ : source ~/.bash_profile (적용)




5. 이클립스 실행 (자바 런타임 없으면 설치 팝업을 통해 설치)



Help -> install new software

Work with 에 다음 경로 입력 후 엔터

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

기다리면 항목에 Developer Tools 생기는데 체크 후 Next





Android SDK Manager 실행 후 SDK설치 내역을 확인.
필요한 버전 다운로드


설치 후 Help->check for updates로 업데이트



6. 안드로이드 타겟 확인

정상적으로 설치됐는지 테스트
[터미널]
$ : android list target

성공



참고)

이클립스에서 File->New->Android Project 가 바로 보이도록 설정하기

이클립스의 Window-> Customize Perspective-> Shortcuts-> android체크







프로젝트 생성 후 실행















AVD 생성







테스트 프로젝트 실행









완성공


+ Recent posts