달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

코드 및 리소스

문제점

터치 연타시 vector offset 에러나면서 뻗음

해결 -> 터치 이벤트에 리턴 위치를 확실히 지정해주면서 안그럼

:
Posted by 웽웽


예제 코드 및 리소스


중요한 HelloWorldScene.cpp만


문제점

게임 오버 후 캐릭터가 가끔 튀어나오는것

게임 오버 라벨 출력 액션이 일관적이지 않음

:
Posted by 웽웽

윈도우에서 프로그래밍을 할 때, 타겟 디바이스보다 해상도가 낮아서 화면이 모니터 상에 제대로 보이지 않을때, glview->setFrameZoomFactor(0.5f); 를 이용해서 축소된 크기로 확인할 수 있다.


:
Posted by 웽웽

저장한 맵을 cocos프로젝트의 resources폴더에 위치시킴.


+ 맵타일의 ID는 0번부터 시작이지만, cocos에서는 1번부터 시작한다. 그러니까 이 두개를 잘 맞춰줘야함.


예제 코드

맵 파일 내용 뽑아내는 기술이 많으므로 필요할때마다 보고 복습할것


캐릭터 이동 / 끝에 도달 시 맵 이동 / 타일 ID및 속성값 추출 등



파일


'DATA_OLD > Cocos2d-x 기능성 게임 개발과정' 카테고리의 다른 글

[D_018] tiny flight 예제  (0) 2014.12.04
[D_017] 해상도관련  (0) 2014.12.03
[D_015] Editbox  (0) 2014.12.01
[D_015] Android porting  (0) 2014.12.01
[D_014] Scale9Sprite  (0) 2014.11.28
:
Posted by 웽웽

1) Editbox



기타 Editbox관련 설정들은 책 p.386~를 참고할 것.



2) Delegate

Editbox 관련하여 특정 동작을 취할 때 미리 지정한 메소드가 자동으로 호출되는 것.


- Delegate를 사용할 클래스에 public EditBoxDelegate를 상속받음.




:
Posted by 웽웽

준비물

- ADT

Android SDK

Eclipse



- NDK 

안드로이드에서 C++을 사용할 수 있게 해줌.

Cygwin같은거 할 필요 없이 알아서 할 수있게 되어있음.



- Ant

콘솔창에서 .apk파일을 바로 뽑아낼 수 있음.




1) android SDK설치

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

develop -> tools -> download -> installing the SDK

(작성 시간 기준)보통 API 18을 받으면 가능

Tools  /  Android API  /   Extras 까지 한번에 설치해두면 편하다.

안드로이드 SDK는 다운로드 속도가 지리게 느리다는 점을 유념하자.



2) NDK 설치

cocos는 r9버전까지 호환된다. 현재 구글에서 제공하는 r10버전은 맞지않으므로

http://injakaun.blog.me/220070177618?Redirect=Log&from=postView

r9c버전 다운로드



3) ANT 설치

http://ant.apache.org/bindownload.cgi

binary disturbtions -> .zip archieve 다운



4) JDK 설치

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html




모두 압축 해제/설치 후

cmd -> cocos2d-x 메인 폴더 이동 후 python setup.py

각 변수에 맞는 폴더 경로 지정

android SDK : SDK 폴더 경로

apache ANT : ANT 폴더 내 bin 폴더 경로

NDK_ROOT : NDK 폴더 경로

같은 과정 반복시 다른 입력을 요구하지않고 바로 종료되면 완료된 것


환경변수에 JAVA_HOME 추가 -> JDK 폴더 및 JDK 내 bin 폴더까지 추가

제대로 java가 되는지 확인하기 위해

java / java -version / javac 

이 세가지 명령어가 모두 잘 작동하면 일단은 안심해도 된다고 봐도 된다.



컴파일하기위한 프로젝트의 폴더로 이동

proj.android 폴더의 android.mk 수정

(.cpp파일 추가, 추가 라이브러리 등록 등)

cocos compile -p android 실행



+ 패키지명은 숫자가 앞에 오면 안된다.

이렇게  패키지명 오류시, AndroidMenifest파일 내에 있는 패키지명을 수정해주면된다.


portrait = 세로

landscape = 가로


디바이스 별로 화면 크기를 조절할 경우

appDelegate.cpp파일의 glview선언 뒤에 맞는 걸로 추가

작성 시기 기준으로 1280*720 / 1920*1080 사이즈가 가장 보편적

:
Posted by 웽웽

팝업용으로 쓰는 창에 사용하기 위한 scale9sprite




:
Posted by 웽웽

사전작업

1) Extensions 프로젝트 추가

솔루션 오른쪽버튼 -> 기존 프로젝트 추가 -> 프로젝트 폴더 내  cocos2d\extensions\proj.win32\libExtensions 추가


2) 유저프로젝트 오른쪽버튼 -> 속성 -> 공용속성 -> 새 참조 추가 -> libExtensions 체크


3) 유저프로젝트 오른쪽버튼 -> 속성 -> 구성속성 -> 하위메뉴에서 C/C++ -> 추가 포함 디렉터리 -> $(EngineRoot) 추가


4) #include "cocos-ext.h"  , USING_NS_CC_EXT;   추가



Scroll View는 컨테이너 형태로, Layer를 가진다.

(레이어 : 스크롤뷰 == 메뉴아이템 : 메뉴)


예제



2) ContentsOffset() - 스크롤 뷰 내에 있는 아이템 클릭 동작 관련

예를들어 화면 넓이가 300인데, 스크롤뷰 내의 레이어는 500이고, 이 레이어의 450좌표에 아이콘이 있고 이걸 클릭하려고 할 때, getContentOffset()을 이용한다.

getContentOffset()은 레이어 내에 포함된 아이템들이 레이어의 움직임에 따라 움직인 위치만큼 보정을 해준다.

예제코드


:
Posted by 웽웽

auto spr = Sprite::create();

spr->setPosition(Vec2(100, 100));

this->addChild(spr);


//통짜 이미지를 텍스쳐로 등록

auto texture = TextureCache::getInstance()->addImage("아틀라스 파일명.png");


auto animation = Animation::create();

animation->setDelayPerUnit(0.2f);


for (int i=0; i<내부의그림개수; i++)

{

animation->addSpriteFrameWithTexture( texture, Rect(56*(i%3), 80*(i%3), 56, 80) );

//텍스쳐 이름, 텍스쳐 배열의 좌표 점화식

}

spr->runAction(RepeatForever::create(Animate::create(animation)));



예제 코드 및 파일


:
Posted by 웽웽

UserDefault

key와 value를 이용하여, key 값에 value를 저장하는 방식.

보안이 따로 필요없는 간단한 데이터들을 로컬에 저장한 뒤 불러오는 방식의 저장소.

getIntegerForKey로 불러오고, setIntegerForKey로 저장한다.



:
Posted by 웽웽