벌써 3일째 삽질중인데 아직까지 성공 못하고 있습니다.
시작 액티비티에서
// cocos2d 관련 화면 출력 부분
_glSurfaceView = new CCGLSurfaceView(this);
setContentView(_glSurfaceView);
// 아담 광고부분
setContentView(R.layout.adxml);
// 할당 받은 clientId 설정
AdConfig.setClientId("TestClientId");
// Ad@m sdk 초기화 시작
adView = (MobileAdView)findViewById(R.id.adview);
//adView.setRequestInterval(60);
adView.setAdListener(this);
adView.setVisibility(View.VISIBLE);
위와 같이 하면
무조건 아래쪽에 있는 화면만 뜹니다.
위의 경우는 아담 광고만 뜨고
아담 광고를 위로 올리면 광고는 안뜨고 게임화면만 뜹니다.
혹시 cocos2d에서 광고 넣는거 해보신분 계시면 어떤식으로 하셨는지
도움 부탁 드립니다.
빠른 답변 감사합니다. 그런데 위와 같이 설정할 경우 _glSurfaceView 의 경우는 어떤식으로 호출해야 할까요?
_glSurfaceView = (CCGLSurfaceView)findViewById(R.id.glSurface);
setContentView(_glSurfaceView);
//_glSurfaceView = new CCGLSurfaceView(this);
//setContentView(_glSurfaceView);
위와 같이 하니 죄송합니다! 오류 뜨면서 프로그램이 종료되네요.
어제밤부터 광고 때문에 지금까지 날새도록 원인 찾고 있고 못찾으면
cocos2d 포기하고 새로 코딩 다 해야하나 고민까지 하고 있습니다 ㅠㅠ
도와주세요.
android.opengl.GLSurfaceView 이 부분을 org.cocos2d.opengl.CCGLSurfaceView로
바꿔서 한번 해 보세요
setContentView(_glSurfaceView);
setContentView(R.layout.adxml);
이렇게 2개 사용하시나요?
그러면 일단 addContentView(R.layout.adxml);
를 하시면 화면에 어케든 나올거 같기도 한데
한개의 레이아웃에 넣어서 호출하면 GLSurfaceView의
화면사이즈를 줄였다 늘렸다 줄였다 하면서 cocos2d 전체에 영향을 줄겁니다.
Render 에서 change 어찌고 저찌고 불리면서 사이즈 리셋되거든요..
일단 해보지 않아서 100% 장담하지 못하는 이야기 이므로 그냥
한귀로 흘리셔도 됩니다 ^^
아..어제 꼬박 날새서 낮잠 한숨 자다가 핸드폰으로 댓글 달린거 보고 일어나서 해봤는데
여전히 오류창 뜨면서 프로그램 종료 되네요.
그리고 아즈라엘님.. 그러면 어떤식으로 cocos2d에 광고를 넣어야 할까요..
일단 android cocos2d 를 사용하는 이용자가 너무 적고 거기다가 아담(국내광고)이다 보니
구글링 해도 정보도 아예 없어서 통 감을 못잡고 있습니다.
게임 다 완성된 상태인데 이제 와서 cocos2d 버리고 새로 코딩할 수도 없는 노릇이고 ㅠㅠ
다 빼고
_glSurfaceView = new CCGLSurfaceView(this);
setContentView(_glSurfaceView);
위 두줄만 실행시 정상적으로 게임실행
adxml 에
<android.cocos2d.opengl.CGGLSurfaceView android:id="@+id/glSurface"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
이렇게 넣고
_glSurfaceView = (CCGLSurfaceView)findViewById(R.id.glSurface);
setContentView(_glSurfaceView);
위와 같이 호출하면 프로그램이 종료됩니다.
public class SimpleGame extends Activity implements AdHttpListener
{
protected CCGLSurfaceView _glSurfaceView;
private TimerTask second;
private MobileAdView adView = null;
.
.
.
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
.
.
.
마지막 부분에
_glSurfaceView = (CCGLSurfaceView)findViewById(R.id.glSurface);
setContentView(_glSurfaceView);
호출
.
.
.
@Override
public void onStart()
{
super.onStart();
CCDirector.sharedDirector().attachInView(_glSurfaceView);
//CCDirector.sharedDirector().setDeviceOrientation(CCDirector.kCCDeviceOrientationLandscapeLeft);
CCDirector.sharedDirector().setDeviceOrientation(CCDirector.kCCDeviceOrientationPortrait);
CCDirector.sharedDirector().setDisplayFPS(false);
CCDirector.sharedDirector().setAnimationInterval(1.0f / 60.0f);
CCScene scene = GameLayer.scene();
CCDirector.sharedDirector().runWithScene(scene);
}
위와 같습니다.
1차로 해결해야 할게
org.cocos2d.opengl.CCGLSurfaceView 로 된 xml 부분을 충돌없이
화면에 띄워야 할거 같은데 잘되네요.
기타 다른 해결 방법 등도 있으면 제시해 주시면 열심히 시도해 보겠습니다.
아즈라엘님 답변 감사합니다.
제가 아이폰쪽 개발하다 안드로이드로 넘어온지 얼마 안되서 아직 이쪽 감이 덜 잡혀서 그런지는 모르겠는데
일단 LinearLayout에 org.cocos2d.opengl.CGGLSurfaceView 를 자리잡고
액티비티에서 호출시도만 하려고 해도 프로그램이 종료되네요.
-- adxml.xml ---
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_gravity="top"
android:layout_weight=".9">
<org.cocos2d.opengl.CGGLSurfaceView android:id="@+id/glSurface"
android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
------------------------
setContentView(R.layout.adxml);
_glSurfaceView = (CCGLSurfaceView)findViewById(R.id.glSurface);
setContentView(_glSurfaceView);
튕김.... Help me Plz..
아 계속 구글링 하면서 삽질중인데 죽어도 안되네요. ㅠㅠ
android.opengl.GLSurfaceView 로 된 Layout 는 잘 출력되는데
org.cocos2d.opengl.CCGLSurfaceView 로 된건 여지없이 튕기네요 ㅠㅠ
setContentView 는 window 에 View 를 붙이는것으로
addSubview 와 비슷할거라 생각하지만
onCreate 에서 딱 한번만 호출하는 메서드 입니다.
iOS 와 큰 차이점은 Activity가 Web페이지처럼 stack에 쌓여서 이전페이지 , 앞페이지 가 관리 됩니다.
이때 프로세서 경계를 넘나들며 RPC가 가능한데요 이때문에 Intent 를 사용합니다.
IPC와 비슷하다고 보시면 되요..
처음엔 이게 뭔가? 라고 생각하시겠지만
아이폰 개발을 해보셨기 때문에 잘하리라 믿습니다. ^^
언능 감 잡으셔서 안드로이드의 매력에 푹 빠져보시길 ..



