前言:
這一節主要講解如何添加第三方sdk;主要通過以前的2048項目,另外cocos2dx-android.jar源代碼也開源出去,想具體瞭解cocos引擎和android是如何交互的 可以研究cocos2dx-android代碼,也存放在下面鏈接裏面;
代碼下載
https://github.com/makeapp/cocoseditor-2048 (名稱對應各平臺sdk 比如2048-android-baidu, 2048-android-360等)
圖片快照
分析
1 請使用項目裏面最新的cocos2dx-android.jar庫 如果你要在其他項目中添加sdk 也需要覆蓋新的cocos2dx-android庫
2 添加sdk基本類似,首先整個activity是在framelayer上,opengl遊戲也放置在framelayer上,我們添加的sdk只要新建一個relativelayer,放置在裏面就可以了;
以百度sdk爲例子,覆蓋init函數,frameLayer層加了一個sdkLayer,在sdkLayer裏面嵌入bannerlayer就行,因爲封裝好了cocos2dx-android.jar 一切就好辦多了
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public FrameLayout init() {
FrameLayout frameLayout = super.init();
RelativeLayout sdkLayer = new RelativeLayout(this);
frameLayout.addView(sdkLayer);
// RelativeLayout rlMain = new RelativeLayout(this);
// rlMain.setHorizontalGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL);
// // 創建廣告View
// AdView.setAppSid(this, "b1067edd");
// AdView.setAppSec(this, "b1067edd");
// AdView adView = new AdView(this);
// rlMain.addView(adView);
// frameLayout.addView(rlMain);
// return frameLayout;
//banner
RelativeLayout bannerLayer = new RelativeLayout(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 150);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
bannerLayer.setLayoutParams(params);
bannerLayer.setGravity(Gravity.CENTER);
sdkLayer.addView(bannerLayer);
// 創建廣告View
AdView.setAppSid(this, "1003b991"); //b1067edd
AdView.setAppSec(this, "1003b991"); //b1067edd
AdView adView = new AdView(this);
bannerLayer.addView(adView);
//interstitial
//appWall
// actionFromCocos2djs(frameLayout);
return frameLayout;
}
具體的實現還是看代碼 這樣來的快;