2月28日Cocos2d-x引擎技术支持团队上线问答活动第十期~

— Begin quote from ____

引用第5楼lantony于2014-02-28 14:02发表的 :
你好,寻求技术帮助!
问题描述如下:
1:CocoStudioV0.4.0版本导出骨骼动画在Cocos2d-xV2.1.5里跑起来动画散架
2:从Cocos2d-xV2.1.5Demo里拷贝骨骼动画资源文件,跑起来就正常
疑问:
http://www.cocoachina.com/bbs/job.php?action=topost&tid=187922&pid=895412

— End quote

建议coocstudio和引擎都升级至最新版本。

— Begin quote from ____

引用第7楼minkowang于2014-02-28 14:10发表的 :
用的beta2.0
写一个类有一个静态方法用来注册一个jointpin,传入一个node,touch用的lambda表达式完成,在begin和move阶段都没有问题,node可以被拖动像BOX2d那样,但是在end的时候把临时创建的用来绑定的node删除时报错,调式是node的parent不存在,不知道是不是bug还是我对lambda表达式理解有误,求指正,如果描述不够清楚,可以贴代码 http://www.cocoachina.com/bbs/job.php?action=topost&tid=187922&pid=895418

— End quote

描述非常不清楚,请贴代码。请注意Lambda的闭包特性。

— Begin quote from ____

引用第9楼androidguy于2014-02-28 14:29发表的 :
使用Cocos2d-x 3.0 beta2 的GUI extensions,如Button、Text控件,在ios中没问题的。但在Android中编译出现如下的错误。
SharedLibrary : libcocos2dcpp.so
./obj/local/armeabi/libextension.a(CCControl.o):CCControl.cpp:function vtable for cocos2d::extension::Control: error: undefined reference to ‘cocos2d::Node::setLocalZOrder(int)’
make: Leaving directory `/MyStudio/cocos2d-x/books/Cocos2dx_Game_Unleashed/Cocos2dxDemo/proj.android’
./obj/local/armeabi/libextension.a(CCControl.o):CCControl.cpp:function vtable for cocos2d::extension::Control: error: undefined reference to ‘cocos2d::Node::_setLocalZOrder(int)’
http://www.cocoachina.com/bbs/job.php?action=topost&tid=187922&pid=895431

— End quote

请更新引擎至最新版本,从github上面抓取最新代码再试试。

cocos2d-x3.0 beta2 renderTexture设置的区域不是全屏的话有问题

auto s=Director::getInstance()->getWinSize();
pRendTexturekk=RenderTexture::create(128,128,Texture2D::PixelFormat::RGBA8888);
pRendTexturekk->setPosition(0,0);
pRendTexturekk->retain();
pRendTexturekk->setPosition(Point(s.width0.5,s.height0.5-200));
pRendTexturekk->begin();//beginWithClear(255, 255, 255, 255);
Sprite * sprite2 = Sprite::create(“Icon-100.png”);
log(“origin.x:%f,%f”,pRendTexturekk->getPosition().x,pRendTexturekk->getPosition().y);
sprite2->setPosition(Point(0,0));//貌似3.0的视口改变了
sprite2->visit();
pRendTexturekk->end();
addChild(pRendTexturekk, 1);

//同样的代码在2.x版本中是可以正常想要的。 但是在3.0的时候 可能被放大 ,或者缩小。反正就是感觉不正常。是否是我代码有错误呢。 而且在rendertexture 里面的官方demo 那个4个点的也是不正常的。 都没人发现么??我记得某期 好像也有人提出这个问题的。

auto pSprite= Sprite::createWithTexture(pRendTexturekk->getSprite()->getTexture());
addChild(pSprite,1);
pSprite->setPosition(Point(s.width0.5,s.height0.5));

Sprite * sprite3 = Sprite::create("Icon-100.png");
addChild(sprite3,1);
sprite3->setPosition(Point(s.width*0.5,s.height*0.5+200));

— Begin quote from ____

引用第12楼lishu990458199于2014-02-28 14:53发表的 :
我用cocos2dx2.2移植到android的方法移植cocos2dx3.0…出现很多错误。。。。能说说2.0和3.0的移植有什么不同吗 http://www.cocoachina.com/bbs/job.php?action=topost&tid=187922&pid=895452

— End quote

移植没什么差别,都是用ndk,配合脚本,android.mk文件修改。如果你会其中一个,另外一个应该不是什么问题。

请在cocostudio下载也查看。http://www.cocoachina.com/bbs/read.php?tid=154886

— Begin quote from ____

引用第23楼linminglu于2014-02-28 15:19发表的 :
cocos2d-x3.0 beta2 renderTexture设置的区域不是全屏的话有问题

auto s=Director::getInstance()->getWinSize();
pRendTexturekk=RenderTexture::create(128,128,Texture2D::PixelFormat::RGBA8888);
pRendTexturekk->setPosition(0,0);
http://www.cocoachina.com/bbs/job.php?action=topost&tid=187922&pid=895488

— End quote

已经跟引擎组的人确认,这是个bug,我们会尽快修复。

墙裂期待3.0的发布!

我是神算子:882:

mac版的cocostudio会在3月发布吗?

3.0移植出现这个问题是什么原因。。。。
2.2的在android.mk添加$(call import-add-path, E:/cocos2d-x-2.2.0/cocos2dx/platform/third_party/android/prebuilt)\就不会出现

3.15号左右触控开发者大会上发布。

果然解决了!不过人家半年前就pr了你们为啥不接受:12::12::12:,太不给泰然面子啊。

#include "MKMouseJoint.h"


MKMouseJoint::MKMouseJoint(void)
{
}


MKMouseJoint::~MKMouseJoint(void)
{
}

void MKMouseJoint::regiterJoint(Node* node)
{
    Node* parent = node->getParent();
    if(parent == nullptr) return;
    //parent->retain();
    PhysicsWorld* world = node->getScene()->getPhysicsWorld();
    if(world == nullptr) return;
    EventListenerTouchOneByOne* touchListener = EventListenerTouchOneByOne::create();
    touchListener->setSwallowTouches(true);
    //Node* mouse(NULL);
    Node* mouse = Node::create();
    mouse->retain();
    touchListener->onTouchBegan = =](Touch* touch, Event* e)
    {
        Point location = touch->getLocation();
        Point mp(location);
        location = node->convertToNodeSpace(location);
        Size size = node->getContentSize();
        Rect rect = Rect(-size.width/2,-size.height/2, size.width, size.height);
        if(rect.containsPoint(location))
        {
            //mouse = Node::create();
            mouse->setPosition(mp);
            PhysicsBody* body = PhysicsBody::create();
            body->setDynamic(false);
            mouse->setPhysicsBody(body);
            if(mouse->getParent() == nullptr)
            {
                parent->addChild(mouse);
            }
        
            PhysicsJointPin* pin = PhysicsJointPin::construct(body, node->getPhysicsBody(), mp);
            pin->setMaxForce(node->getPhysicsBody()->getMass()* 5000);
            world->addJoint(pin);
            return true;
        }
        return false;
    };

    touchListener->onTouchMoved = =](Touch* touch, Event* e)
    {
        if(mouse != nullptr)mouse->setPosition(touch->getLocation());
    };

    touchListener->onTouchEnded = &](Touch* touch, Event* e)
    {
        if(mouse != nullptr)
        {
            //parent->removeChild(mouse);
            //world->removeAllJoints(true);
            //world->_joints
            mouse->getParent();
            if(mouse->getParent() != nullptr) mouse->removeFromParent();
            //mouse->release();
            mouse = NULL;
        }
    };

    parent->getEventDispatcher()->addEventListenerWithSceneGraphPriority(touchListener, node);
}



```


会在ended方法报错,在获取parent的时候报错了

— Begin quote from ____

引用第10楼androidguy于2014-02-28 14:32发表的 :
发现Cocos2d-x 3.0 beta1中Button::setTitleFontColor不起作用,需要使用Button::setColor设置标题文本,还有Layout无法设置锚点,仍然保持默认的(0,0)锚点。不知这是bug,还是就这么设计的。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=187922&pid=895435

— End quote

您好,请等待cocos2d-x3.0正式版发布吧,新版本将会更正该问题

呵呵 还真的是bug 原来bug 是这么一回事。。。

你好,我想问一下,CocoStudio的UI编辑器里面,什么时候提供嵌套UI的功能?
也就是像CocosBuilder那样,在一个UI里面嵌套另一个已经导出的UI配置作为当前UI界面的一个节点。

你发错地方了,这个是上星期的,本期的在外面