我用Phaser引擎编写了一个游戏,但可惜的是,即使使用cocoonjs,我也没有获得任何良好的性能。我试图对其进行优化,但是我认为我无法进行充分的优化。

所以我试图切换到cocos2d-js。我用cocos2d尝试了一些示例,并且效果很好。我想我会得到我想要的性能。我只需要实现两件事。我试图在DrawNode类中使用方法,但我做不到。我是计算机图形学的新手。

  • 绘制 slice ,就像this gist的drawSlice方法一样
  • 沿具有给定半径和 Angular 圆弧书写文本

  • 更新:我需要通过本机代码完成昂贵的计算。我有大约18种这种形状的图像,并通过用户输入分别在100ms内将半径设置为75-200像素。我在Phaser中面临的问题是这种昂贵的计算。

    Update2:现在,我可以在@Sebastian的帮助下绘制this。还不完整。

    Update3:我通过Phaser取得了不错的性能,但有一些漏洞。也许我不需要这个,尽管其他人可能需要它。

    片:

    文本:

    最佳答案

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

    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(或v3)的DrawNode。抱歉,您的回答不完整,但是我希望它会在当前正确的方向上向您发送。

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

    10-05 18:09
    查看更多