cocoBuilder

来源:互联网 发布:qq空间绑定域名 编辑:程序博客网 时间:2024/06/01 12:33

1: 几个设置:

    1:file—project 新建一个工程
2:file ——new file 新建一个文档对象( 跟节点scene lay../名字 /即: 创建多个并列的 .ccb)
3: file —project settting  工程设置 (选 IOS android)
4: 最后操作, file—publish
2: 只有一个文件有用 .ccbi。   CCBread 解析
3:  多个。ccb文件如何相互调用
4:custom  class 类名字,要与你即将用到的.h文件类名字一样
5: 如何建一个大小为屏幕宽,高40%的层, 选择contentsize 中间的% 即可
6: 为啥右边。有的仅仅有一个Node , 有的有多个。—这要看选择的节点的父类了 
7: 如何让一个精灵,不停地做动作。要选择 coe connection代码连结中的 Doc root  var,在后面写个名字,
   即可在代码中引用了
8: 如何给一个按钮binding事件,并调用? 。h中声明, .cpp实现,名字必须为code connection中的名字
9: owner var ,如果一个LabelTTF设为 owner var 可以让所有的场景都去使用。 另一种类型只能在所在跟节点中是用 
      Doc root var 是跟节点关联的文档类 的属性对象。即 HelloWorldCocosBuilder类里定义的成员变量

10:选中工程中的.ccbi文件,凑得connectionbu部分custom class 中输入HelloWodCocosBuilder,就可以在Xcode
工程里自定义一个HelloWordCocoBuilder类来与次文档场景建立关联了
11: fiel — project setting, 选择发布,资源路径。 有个小技巧,在新建CocosBuilder工程时候,可以直接选择把”工程文件路径“保存到
图片资源同一个目录下面, 这样就无需在另外选择图片资源路径了

12 : 附带 书中的照片


---------------------------------------------Cocos2d-x——CocosBuilder官方帮助文档翻译1 使用自定义类 --------参考 

Cocos2d-x 游戏开发 - 代码与CocosBuilder绑定

------------------------------------------------------------------------------

Cocos2d-x——CocosBuilder1:   创建按钮;  先选中最下面的 DefaultTime  在点击最上面的 sprite  button lay 等等;  /comd + - 跳大小   / 修改图片时; 都只能在右边的属性中, 不能直接拖  /    添加资源:直接把资源copy到下面中的 picture即可   / 要删除; 用BackSpace即可  // 按钮用宏之后

CCB_SELECTORRESOLVER_CCMENUITEM_GLUE 

, 点击没反应 ;应为builder中的事件下面Target: 选owner 不能选择none  /   知道返回值不对但是不会改:


2:三个需要指点路径的:

 1:  new -project 创建新的工程, 新建一个文件夹ccb与工程并列;OK  出现的resource 下删除 / 见自己的文件夹 入picture  config

2: new->interface file  这个路径选择上面的config即可,    --- 调大小 因为一个是 4 一个是5的

3:file-》project  setting 设置cocosbuiler资源文件的路径 +进去; 选择刚才的picture 即可存放资源    ---*- -- - - -  不用设了

4:fiele-> publish setting  去掉html5 IOS中勾选select 选择 ../项目名字/Resources/自己建的文件夹    OK了。


3:点击发布 publish按钮即可;   ../项目名字/Resources/自己建的文件夹    下会自动出来需要的 .ccbi文件

4:  cocos2d-x  创建工程又不会; 也搜不到;  头: 不要看网上的教程; 根据readMe.md文件  

./setup.py      

source /Users/ooashid/.bash_profile

cocos new  cocosBuilder -p  com.daJIao.org  -l cpp -d /Users/ooashid/work/cocos2d-x-3.2/pro 


5: 出错  老大说 多想想为什么,  看控制台

想这些:用蓝色文件夹见得; 要想在项目中用; 只用在AppDelegate中加上

void FileUtils::setSearchPaths(const std::vector<std::string>& searchPaths)
FileUtils::getInstance()->addSearchPath("ccb/"); cocos2d-x绑定ccb文件个人实现的例子***************------ 

cocos2d-x绑定ccb文件


准备工作:新建一个cocosbuilder项目,添加menu,button,labeltext



1.class绑定-先上代码

.h文件
a-在MainScene.h添加新的函数,

CCB_STATIC_NEW_AUTORELEASE_OBJECT_WITH_INIT_METHOD(MainScene, create);

b-然后在MainScene.h中添加一个新类MainSceneLayerLoader代码如下:

class MainSceneLayerLoader : public cocos2d::extension::CCLayerLoader

{

public:

    CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(MainSceneLayerLoader, loader);

protected:

    CCB_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(MainScene);

};

.cpp文件

然后我们在MainScene.cpp中添加一行注册将ccb文件和类绑定起来.

 CCNodeLoaderLibrary *lib = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();

 

lib->registerCCNodeLoader("MainScene"MainSceneLayerLoader::loader());

cocosbuilder中将根节点的Custom class设置为MainScene.如下图



备注:在cocosBuilder 3.0中,默认为JavaScript ,需要把javascript取消掉


然后运行下, 确保没有错误. 
这几行代码, 就是ccb文件和类绑定的最简模式了.




2.MenuItem,Button绑定-先上代码

.h文件

class MainScene

public cocos2d::CCLayer

public cocos2d::extension::CCBSelectorResolver

重写虚函数

virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::CCObject * pTarget, constchar* pSelectorName);

virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::CCObject * pTarget, const char* pSelectorName);


void onMenuItemTest(cocos2d::CCObject *pSender, cocos2d::extension::CCControlEvent pCCControlEvent);

void onButtonTest(cocos2d::CCObject *pSender, cocos2d::extension::CCControlEvent pCCControlEvent);

.cpp文件

SEL_MenuHandler MainScene::onResolveCCBCCMenuItemSelector(cocos2d::CCObject *pTarget, const char*pSelectorName)

{

    CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this"onMenu"MainScene::onMenuItemTest);

    return NULL;

}

SEL_CCControlHandler MainScene::onResolveCCBCCControlSelector(cocos2d::CCObject *pTarget, const char*pSelectorName)

{

    CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this"onButtonTest"MainScene::onButtonTest);

    return NULL;

}

void MainScene::onMenuItemTest(cocos2d::CCObject *pSender, cocos2d::extension::CCControlEventpCCControlEvent)

{

    CCLog("MenuItem");

//    this->mLabelText->setString("Hello MenuItem");

}

void MainScene::onButtonTest(cocos2d::CCObject *pSender, cocos2d::extension::CCControlEventpCCControlEvent)

{

    CCLog("onButton");

//    this->mLabelText->setString("Hello onButton!!!");

}


MenuItem ,Button 是一样的

在cocosbuilder中,在CCB中找到CCControlButton, 并设置其Selector为onButtonTest . Target设置为Document root. 如下图


然后运行下, 确保没有错误. 

这几行代码, 就是ccb文件和

MenuItem ,Button 

   

绑定的最简模式了.


3 . CCLabelTTF 绑定 -先上代码

.h文件

public cocos2d::extension::CCBMemberVariableAssigner

public cocos2d::extension::CCNodeLoaderListener

virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::CCObject * pTarget, constchar* pSelectorName);

virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::CCObject * pTarget, const char* pSelectorName);

private:

   

cocos2d::CCLabelTTF *mLabelText;

.cpp文件

MainScene::MainScene(): mLabelText(NULL)

{

}

MainScene::~MainScene()

{

    CC_SAFE_DELETE(mLabelText);

}

bool MainScene::onAssignCCBMemberVariable(cocos2d::CCObject *pTarget, const char*pMemberVariableName, cocos2d::CCNode *pNode)

{

    CCB_MEMBERVARIABLEASSIGNER_GLUE(this"mLabelText"CCLabelTTF*, this->mLabelText);

    return true;

}

void MainScene::onNodeLoaded(cocos2d::CCNode *pNode, cocos2d::extension::CCNodeLoader *pNodeLoader)

{

    this->mLabelText->setString("All Loaded");

}


在CCB中给CCLabelTTF添加一个Doc root var 类型的绑定mLabelText. 如下图



然后运行下, 确保没有错误. 

这几行代码, 就是ccb文件和

CCLabelTTF

绑定的最简模式了.




最后运行结果,可以把 CCLabelTTF 和 MenuItem,Button连接在一起


0 0