c using namespacee cocostudio::timeline;

在Cocos2dx3.4 中导入csb文件时出错_百度知道
在Cocos2dx3.4 中导入csb文件时出错
写好了cocos studio场景,发布为.csb 在cocos2dx3.4代码中,添加头文件#include &cocos2d.h&#include &ui/CocosGUI.h&//UI相关的头文件#include&cocostudio/CocoStudio.h&//在CocosStudio.h 头文件中已经包含了Studio所需要的各个头文件(除CocosGUI)因此我们使用Studio仅需要包含他就可以using namespace cocostudio:: 然后在.m文件中写 Node *rootNode = CSLoader::createNode(&MainScene.csb&); 结果vs2012报错说,CSLoader不是一个类或命名空间名。。何解
  有两种原因:1.脚本出错 2.要不就是你所导入的项目,在被你复制过来之前不是压缩文件
网络工程师
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Cocos2d-x3.0游戏实例之《别救我》第六篇——从代码中获取UI控件
如果文章对您有所帮助,欢迎给作者捐赠,支持笨木头的独立游戏工作,捐赠数额随意,重在心意^_^ +
这篇的内容很简单,获取UI控件,然后使用它。
还记得我们在UI编辑器中给三个按钮分别命名了吧?
现在要用上了。
笨木头花心贡献,啥?花心?不呢,是用心~
转载请注明,原文地址:
文章来源:
根据名字查找控件
首先给TollgateScene再include一些头文件,不然等会编译又报错了:
#include &editor-support/cocostudio/CCSGUIReader.h&
#include &cocostudio/CocoStudio.h&
#include &ui/CocosGUI.h&
using namespace cocos2d::ui;
using namespace cocostudio;
上面就是比较完整的使用UI所需要用到的头文件了。
然后,获取UI控件的方法如下,继续修改createOprUI函数:
void TollgateScene::createOprUI()
auto UI = cocostudio::GUIReader::getInstance()-&widgetFromJsonFile(&OprUI_1.ExportJson&);
this-&addChild(UI);
/* 获取按钮对象 */
Button* rightBtn = (Button*)Helper::seekWidgetByName(UI, &rightBtn&);
Button* quickMoveBtn = (Button*)Helper::seekWidgetByName(UI, &quickMoveBtn&);
Button* leftBtn = (Button*)Helper::seekWidgetByName(UI, &leftBtn&);
Helper::seekWidgetByName函数会从UI里面找控件,一层层的找,父控件找不到,就找子控件,如此递归,最后找的名字相符的控件,返回这个控件对象。
很简单,不多解释喇~
添加按钮回调事件
OK,最后一步了,现在按钮摆在那里什么都做不了,我们给按钮添加回调事件~
先给TollgateScene添加三个函数声明:
& void moveToLeft(Ref* sender, TouchEventType type);
void moveToRight(Ref* sender, TouchEventType type);
void quickMove(Ref* sender, TouchEventType type);
这是Button点击事件回调时所需要的函数格式。
然后,继续修改createOprUI函数:
void TollgateScene::createOprUI()
auto UI = cocostudio::GUIReader::getInstance()-&widgetFromJsonFile(&OprUI_1.ExportJson&);
this-&addChild(UI);
/* 获取按钮对象 */
Button* rightBtn = (Button*)Helper::seekWidgetByName(UI, &rightBtn&);
Button* quickMoveBtn = (Button*)Helper::seekWidgetByName(UI, &quickMoveBtn&);
Button* leftBtn = (Button*)Helper::seekWidgetByName(UI, &leftBtn&);
/* 添加按钮回调事件 */
leftBtn-&addTouchEventListener(this, toucheventselector(TollgateScene::moveToLeft));
rightBtn-&addTouchEventListener(this, toucheventselector(TollgateScene::moveToRight));
quickMoveBtn-&addTouchEventListener(this, toucheventselector(TollgateScene::quickMove));
利用addTouchEventListener函数就可以绑定按钮的回调事件了~
最后了,看看三个回调函数的实现:
void TollgateScene::moveToLeft(Ref* sender, TouchEventType type)
switch (type)
case TOUCH_EVENT_ENDED:
m_player-&moveToLeft();
void TollgateScene::moveToRight(Ref* sender, TouchEventType type)
switch (type)
case TOUCH_EVENT_ENDED:
m_player-&moveToRight();
void TollgateScene::quickMove(Ref* sender, TouchEventType type)
switch (type)
case TOUCH_EVENT_ENDED:
m_player-&quickMove();
是不是感觉有点小复杂?
应该说,有点小麻烦,因为按钮事件绑定的时候,是没有区分“按下”、“移动”、“松开”的,所以我们要自己判断一下,TOUCH_EVENT_ENDED就是按钮点击,然后松开的时候的事件。
如果大家觉得麻烦,可以自己改源码,添加一些函数,在绑定按钮事件的时候,可以指定绑定哪种事件。以及可以使用std::function来作为参数,这样很方便,当然,跑题了。为了避免大家混乱,这里就不介绍了。
OK,现在大家运行游戏,然后点击这三个操作按钮,看看主角是不是能左右移动以及放屁(向下冲)吧~
下一篇,添加碰撞检测,让主角碰到墙壁之后,进行加血。
没错,就是加血,不是扣血~因为《别救我》胜利的条件是血量为0,碰到墙是要惩罚的~
惩罚的方式就是加血~
-------------------------------------------------------- End --------------------------------------------------------
如果文章对您有所帮助,欢迎给作者捐赠,支持笨木头的独立游戏工作,捐赠数额随意,重在心意^_^ +
---------------------------------------------------------------------------------------------------------------------
<a href='/item.htm?spm=686..0.psHW3K&id=' alt="Cocos2d-x3.0
【上一篇】【下一篇】
这货是木头
博主:笨木头
关注:Cocos2d-x
访问:234531 次
----------------------------
木系Cocos2d-x群(满):
Cocos2d-x①号小群:
----------------------------
Cocos2d-x游戏源码:
Cocos2d-x网游源码:
赞助一下,点你喜欢
只看感兴趣的
木头的新书出版喇
大家都在讨论也许你用得上
大家都在关注}

我要回帖

更多关于 c using namespace 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信