1.解决使用extensions库编译问题
(1)首先在工程解决方案中右键->属性->add existing project->到目录..../cocosed/extensions/proj.win32/libExtensions.vcxproj
(2) 在自己建的project添加新引用,属性->common properitIEs->add new reference.....
(3)在自己建的project 属性->Configuration propertIEs->C/C++->Additional Include Directires->add "$(EngineRoot)"
2.引入库后,加一个按钮代码段如下
#include"cocos-ext.h"using namespace cocos2d::extension;
<span > </span>auto* nine = Scale9Sprite::create("Closenormal.png"); auto* ninedown = Scale9Sprite::create("CloseSelected.png"); Label *Title = Label::create("touch me!","Marker Felt",30); auto* ctlbtn = Controlbutton::create(Title,nine); ctlbtn->setBackgroundSpriteForState(ninedown,Control::State::HIGH_liGHTED); ctlbtn->setposition(Point(200,200)); this->addChild(ctlbtn);
3.CocoStudio UI 编辑器
(1)在画布加载好控件后,直接Ctrl+E 导出画布,把export中的三个文件放到工程的resource目录下。
(2)导入libCocosstudio.vcxproj 和libGui.vcxproj库,加"$(EngineRoot)\cocos\editor-support",$(EngineRoot)\cocos,$(EngineRoot).
(3)代码注意加的片段
#include"editor-support\cocostudio\CCSGUIReader.h"#include"ui\CocosGUI.h"using namespace cocos2d::ui;using namespace cocostudio;
auto UI = cocostudio::GUIReader::getInstance()->WidgetFromJsonfile("ForLearning_1.ExportJson"); UI->setposition(Point(200,200)); this->addChild(UI);
4.Cocos2dx添加有米广告
(1)把有米SDK 里面YoumiSdk_v4.10_2014-09-25.jar加进eclipse的lib目录下
(2)Coco2dx 加广告,需要通过JNI来调用java端的方法
java端代码如下
public class AppActivity extends Cocos2dxActivity { public static AppActivity youmiads ; protected voID onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); /*start:有米广告代码*/ youmiads = this; //最后的 boolean 值为是否开启测试模式,true 为是,false 为否。(上传有米审核及发布到市场版本,请设置为 false) AdManager.getInstance(this).init("xxxxxxxxx","xxxxxxxxxxxxx",false); FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,FrameLayout.LayoutParams.WRAP_CONTENT); layoutParams.gravity = Gravity.BottOM | Gravity.RIGHT; AdVIEw adVIEw = new AdVIEw(this,AdSize.FIT_SCREEN); this.addContentVIEw(adVIEw,layoutParams); adVIEw.setAdListener(new AdVIEwListener() { @OverrIDe public voID onSwitchedAd(AdVIEw arg0) { Log.d("AppActivity","onSwitchedAd"); } @OverrIDe public voID onReceivedAd(AdVIEw arg0) { Log.d("AppActivity","onReceivedAd"); } @OverrIDe public voID onFailedToReceivedAd(AdVIEw arg0) { Log.d("AppActivity","onFailedToReceivedAd"); } }); SpotManager.getInstance(this).loadSpotAds(); //设置展示超时时间,加载超时则不展示广告,默认0,代表不设置超时时间 SpotManager.getInstance(this).setSpottimeout(5000);// 设置5秒 SpotManager.getInstance(this).setShowInterval(20);// 设置20秒的显示时间间隔 /*end:有米广告代码*/ } public static Object getActivity(){ System.out.println("object"); return youmiads; } public voID showAds(){ Log.d("AppActivity","show ads"); /*start:有米广告*.*/ SpotManager.getInstance(this).showSpotAds( this,new SpotDialogListener() { @OverrIDe public voID onShowSuccess() { Log.d("AppActivity","onShowSuccess"); } @OverrIDe public voID onShowFailed() { Log.d("AppActivity","onShowFailed"); } @OverrIDe public voID onSpotClosed() { Log.e("AppActivity","onSpotClosed"); } }); //end:有米广告*/ //SpotManager.getInstance(this).showSpotAds(this); } public voID missionads(){ SpotManager.getInstance(this).disMiss(true); } @OverrIDe protected voID onStop(){ SpotManager.getInstance(this).disMiss(true); super.onStop(); } }
(3) cocos2dx端C++代码调用
#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)#include<jni.h>#include"platform/androID/jni/JniHelper.h"#define CLASS_name "org.cocos2dx.cpp.AppActivity"#define DEBUG 1#endifvoID AppDelegate::showAds(){#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) JniMethodInfo minfo; bool isHava;#ifdef DEBUG{ isHava = JniHelper::getStaticmethodInfo(minfo,"org.cocos2dx.cpp.AppActivity","getJavaActivity","()Ljava/lang/object"); jobject activityObj; if(isHava) { activityObj = minfo.env->CallStaticObjectMethod(minfo.classID,minfo.methodID); } isHava = JniHelper::getmethodInfo(minfo,"showAds","()V"); if(isHava) { minfo.env->CallVoIDMethod(minfo.classID,minfo.methodID); }}#endif#endif}总结
以上是内存溢出为你收集整理的记录cocos2dx学习中的笔记全部内容,希望文章能够帮你解决记录cocos2dx学习中的笔记所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)