1

我想实现等轴测视图。看图片。如何设置CCLayer CCCamera 属性可以做到这一点?Rotate 和 Scale 不能这样做,因为旋转和缩放是同时进行的。 等距

4

1 回答 1

2

显然这对你来说太晚了,但对于任何通过谷歌搜索“cocos2d 等距变换旋转倾斜”或类似的东西来查看这个的人来说:我想出了正确的倾斜和旋转。由于缺乏对角线比例或 Z 旋转,需要使用两层方法。对于 javascript 开发人员:这会生成一个等距变换的 DrawNode。我不确定这会对性能产生什么影响,但由于它只使用本机功能,我认为它不会有太大影响。对于其他语言,移植应该是微不足道的。

var MapContainer = cc.Layer.extend({
  ctor: function(){
    this._super();

    this.scaleX = .947;
    this.setAnchorPoint({x:0, y:0});
    this.drawNode = new MapDrawNode();
    this.addChild(this.drawNode);

    return true;
  },
  drawNode: null
});
var MapDrawNode = cc.DrawNode.extend({
  ctor: function(){
    this._super();

    this.setAnchorPoint({x:0, y:0});
    this.y = 360; // shifts everything up, adjust as needed. Mine is 1/2 window size
    this.transform();

    // Your init code here

    return true;
  },
  transform: function(){
    this.setScaleX(0.81649658);
    this.setScaleY(0.81649658);
    this.setSkewX(16.3);
    this.setSkewY(16.3);
    this.setRotationY(45);
    this.setRotationX(45);
  }
});

证明:检查 url 上的图像,因为我没有 10 个代表内联发布它。http://i.stack.imgur.com/T3uU8.png

于 2016-01-26T07:45:10.093 回答