在cocos2d-js中绘制切片

时间:2014-05-21 00:12:04

标签: javascript canvas graphics cocos2d-x cocos2d-js

我用Phaser引擎写了一个游戏,但遗憾的是,即使使用cocoonjs,我也没有得到任何好的表现。我试图优化它,但我不认为我可以足够优化。

所以我试图切换到cocos2d-js。我用cocos2d尝试了一些例子,效果很好。我想我会得到我正在寻找的表现。我只需要完成两件事。我试图在DrawNode类中使用方法,但我不能这样做。我是计算机图形学的新手。

  • 绘制切片,就像this gist
  • 中的drawSlice方法一样
  • 沿着具有给定半径和角度的圆弧书写文本

更新:我需要本机代码完成昂贵的计算。我有大约18个这样的形状,用户输入在100ms内独立动画半径75-200像素。我在Phaser遇到的问题是这个昂贵的计算。

Update2:现在我能够在@ Sebastian的帮助下绘制this。它还不完整。

Update3:Phaser遇到了一些黑客的表现。也许我不需要这个,虽然其他人可能需要它。

切片: Slice

文本: curve text

1 个答案:

答案 0 :(得分:1)

该功能尚未在cocos2d-html5中完成。我能为您提供的最佳解决方案是此功能I submitted a while ago。它并不理想,但应该可以解决问题。如果你不知道如何处理它,我将在以后的样板代码中包装这个功能(我离我的家用电脑几个小时,我没有时间现在就做一个完整的例子):

var drawSolidArc= function(center, radius, degreesFrom, degreesTo, segments){
    if(degreesTo<degreesFrom){
        var temp = degreesTo;
        degreesTo = degreesFrom;
        degreesFrom = temp;
    }
    var i;
    for(i=degreesFrom; i<=degreesTo;i++){
        cc.drawingUtil.drawCircle(center, radius, cc.DEGREES_TO_RADIANS(-i+90), segments, true);
    }
};

此外,此代码适用于v2.2.2,应将其迁移到使用v2.2.3&#39; s(或v3)DrawNode。对不完整的答案感到抱歉,但我希望它暂时让你朝着正确的方向发送。

至于写曲文,我认为这是我所知道的最接近的东西:https://github.com/supersuraccoon/CircleLabelTTFDemo-HTML5