프로그래밍/Cocos2dX(16)
-
Cocos2d-X의 SDKBox의 Vungle 광고 적용시 Crash발생
Cocos2d-X의 SDKBox의 Vungle 광고 적용시 Crash발생됩니다. SDKBox의를 통해서 Cocos2d-x에서 바로 다양한 광고 모듈을 적용할 수있어서 좋았습니다. 하지만 Vungle의 경우에는 동영상을 재생할때 튕기는 현상이 자주 발생됩니다. 정확한 원인은 알수 없습니다. 다음과 같이 단말기별로 조금씩 다른 현상을 보이고 있습니다. 1. 갤럭시 S3(안드로이드 4.4)의 경우에는 튕겨버립니다. - Android Studio에서 확인해보면 다음과 같은 에러들이 출력됩니다. Class not found when unmarshalling: com.vungle.publisher.c -이하 생략-2. 갤럭시 Tab A(Lollipop 5.0.2)의 경우에는 튕기지는 않지만 동영상 광고가 출력되지 ..
2015.11.02 -
Cocos2d-X의 Debug LOG출력 차단하기.
Cocos2d-x의 Debug용 LOG가 console에 출력되지 않도록 하기 위해서 다음과같이 jni>Application.mk파일의 DCOCOS2D_DEBUG=1의 숫자를 0으로 변경 시켜 줍니다. 개발자를 위해서 콘솔에 출력해주는 정보들이 출시 후에도 계속 출력이된다면 부정적으로 사용하는 사람들에게 어느정도의 힌트를 주는 역활이 되지 않을까합니다. 따라서 이렇게 콘솔에 디버깅용으로 출력해주던 로그들은 차단해주는 것이 좋습니다. APP_STL := gnustl_staticAPP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=0
2014.08.22 -
Cocos2d-x에서 게임화면 잡기(ScreenShot)
Cocos2d-x에서 게임화면 잡아야 할때가 있습니다.SNS에 ScreenShot을 올리거나 할때 유용하게 사용됩니다.일반적인 단말기에서 지원하는 스샷을 잡는 방식은 때로는 게임에 따라서 사용할 수 없을때가 있습니다.따라서 다음과 같이 추가해주시면 손쉽게 Cocos2d-x를 이용항 게임에서 화면을 잡아서 저장할 수 있습니다. 1. 먼저 프로젝트의 main함수인 NinjaAndZombies.java에 다음과 같이 추가해줍니다. public static int w = 100;public static int h = 100;public static boolean capture = false;public static Bitmap captureBmp = null; 2. 안드로이드 프로젝트의 scr아래 org.coc..
2013.03.19 -
일본어 출력시 글자가 짤리는 문제...
우선 Cocos2d-X 2.0.1버전을 사용하고 있습니다.iOS와 안드로이드 영문,한글등은 정상적으로 출력되지만 일본어의 경우 다음줄로 넘어가면서 제일 처음 글자를 잘라먹는 현상이 발생됩니다. 이부분은 iOS의 일본어의 경우 특별한 문제는 없지만 특이하게 안드로이드 버전에서만 발생되는 문제입니다. 따라서 해결방법은 소스부분의 org.cocos2dx.lib.Cocos2dxBitmap.java의 소스를 일부 수정해주면 해결됩니다.private static LinkedList divideStringWithMaxWidth(....) 함수를 찾아 갑니다. 다음의 소스를 while(content.indexOf(i++) == ' ') { } 다음과 같이 수정합니다. while(i < charLength && cont..
2012.12.03 -
Cocos2d-X에서 Admob광고 원하는 위치에 추가하기.
Admob의 광고를 Cocos2d-X를 이용한 게임에서 추가하는 방법은 생각보다 쉽습니다.하지만 안될때는 정말 잘안되지만 한번만 정상적으로 사용해보시면 다음부터는 정말 쉽게 사용하실수 있을것입니다. Admob는 개발자에게 광고를 통한 수익을 또는 보유한 어플끼리 크로스마케팅을 통한 추가 다운로드를 유도할 수 도있습니다. 목표 : Admob광고를 원하는 게임의 상태에 따라서 하단의 왼쪽에 또는 중앙에 노출시켜주도록 합니다. 다른 방법들도 참 많이있겠지만 저는 우선 다음과 같은 방법을 이용해서 구현을 했습니다.일단 gamexml (main.xml)을 다음과 같이 구성합니다. 게임소스에서 다음을 추가해줍니다.AdView는 일단 2개를 선언해서 사용하고있습니다. 그리고 Layout도 2개를 선언했습니다.(한개를..
2012.10.20 -
Cocos2d-X를 이용해서 국내 오픈마켓 동시 개발..
Cocos2d-x를 이용해서 iOS와 Android를 동시에 개발하고 있습니다.iOS의 경우 한번만 개발을 하면 특별히 변경할게 없지만 안드로이드의 경우에는 구글,티스토어,오즈,올레등 오픈마켓에 따라서 설정해 줄게 있습니다. 일단 iOS로 개발된 소스는 Classes에 있고 리소소는 Resources에, 그럼 "proj.android_마켓별"과 같이 마켓별 pro.anroid를 복사해서 사용하시면 됩니다. 그럼 게임의 기본적인 소스들은 변경하지 않고 모든 마켓을 대응할 수 있어서 편하게 개발할 수 있습니다. 주의 : build_native.sh파일의 상단에 다음줄을 마켓별로 수정해주시면 됩니다. GAME_ANDROID_ROOT=$GAME_ROOT/proj.android_Olle 그리고 마켓별 libs에 ..
2012.09.11 -
Cocos2d-X는 OpenGL ES 2.0이상을 지원합니다.
Cocos2d-X 2.0부터는 OpenGL ES 2.0이상만을 지원합니다.기존의 버전 Cocos2d-x버전에서는 OpenGL ES 1.1도 지원을 했지만 더이상 지원하지 않는다고 합니다.그래서 Cocos2d-X 2.0으로 마이그레이션하면서 변경된 일부 API들 때문에 조금씩 손을 봐야 했습니다. 최근에는 안드로이드 2.2 Froyo부터 지원한다면 OpenGL ES 2.0이 모두 지원되는 것은 아닙니다. 단말기에 따라서 지원되는 OpenGL버전이 다릅니다. 따라서 꼭 만드신 어플이 OpenGL ES2.0이상만을 지원해야 한다면 Manifast파일에서 다음을 추가해주면 됩니다. 다음은 구글 사이트에서 나온 안드로이드 OS의 분포도와 OpenGL 버전의 자료입니다.출처 : http://developer.and..
2012.09.03 -
Cocos2d-x에서 진동/음소거 모드에서 소리 출력 문제해결 방법
Cocos2d-X로 멀티플랫폼 게임을 개발중입니다.iOS에서는 문제 없었지만 안드로이드로 넘어오면서 몇가지 문제가 생깁니다.그나마 main java소소에서 몇줄 추가로 간단하게 해결할 수 있습니다. 다음 소스를 원하시는 곳에 추가하시면 됩니다.주로 onCreate() 또는 onStart()에 넣으시면 됩니다. 그럼 현재 모드를 확인해서 Cocos2d-X로 Jni를 이용해서 음소거를 시켜주면 됩니다. 게임 음원 출력 프로세스에서 bool형의 isMute 변수를 만들어서 toggle해주는 방식을 사용하시길 추천드립니다. //------------------------------------------------------------------------------------------------// 단말기가 ..
2012.07.19 -
Cocos2d-X에서 보안락 화면에서 게임 프로세스 처리방법.
Cocos2d-x로 멀티플랫폼 게임을 개발중입니다.안드로이드에서는 몇가지 고려해야 하는 사항들이 있습니다.iOS에서는 자동으로 처리해주는 부분들이 안드로이드에서는 개발자가 신경을 써야합니다. 우선 Sleep모드로 넘어간후에 보안락화면에서 게임의 onResume()함수가 호출됩니다.따라서 보안락화면에서 배경음악이 출력되거나 원하지 않게 게임이 진행되는 상황이 발생됩니다.이럴경우 onResume()에서 확실히 복귀된 후에 Pause했던 게임의 상태를 resume으로 변경해주도록 해야합니다. 1. 기존의 protected void onResume()를 다음과 같이 수정해줍니다. @Override protected void onResume() { super.onResume(); // 어플을 재시작하기 전에 보안..
2012.07.19 -
Cocos2d-X에서 게임 화면 180도로 회전하게 만들기.
게임을 만들다 보면 180도로 단말기를 회전할때마다 그에 따라서 화면도 회전이 되어야 합니다.개인적으로 필요성은 못느끼곤합니다. 왜 이렇게 회전을 해야 하는 것일까...? 하지만 때로는 편리할때도 있습니다. 안드로이드 에서 [android:screenOrientation="sensor"]를 사용하면 단말기를 어느 방향으로 회전을 하든간에 게임화면이 회전됩니다. 하지만 단점으로는 landscape용 게임을 세로로 단말기를 들게되면 화면이 짤리는 현상이 발생됩니다.따라서 우리가 필요로 하는 방식은 wide로만 상하로 180도만 회전하도록 하는 것이 필요합니다. 즉 매 90도마다 회전되는 것은 필요치 안습니다. 다음과 같이 설정하면 2.2미만은 Landscape로 화면이 고정이되고 2.3부터는 180도로 회전..
2012.07.18