3

我用Phaser引擎编写了一个游戏,但遗憾的是,即使使用 cocoonjs,我也没有得到任何好的性能。我试图优化它,但我认为我无法优化。

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

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

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

Update2:现在我可以在@Sebastian 的帮助下画出这个。它仍然不完整。

更新 3:我在使用 Phaser 时获得了良好的性能,但有一些技巧。也许我不需要这个,尽管其他人可能需要它。

片: 片

文本: 曲线文字

4

1 回答 1

1

cocos2d-html5 中尚未完成该功能。我可以为您提供的最佳解决方案是我不久前提交的此功能。这并不理想,但它应该可以解决问题。如果您不知道如何处理它,我稍后会将这个函数包装在必要的样板代码中(我离我的家用 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

于 2014-05-21T18:09:46.543 回答