为什么Sprite Kit SKNode会暴露zRotation,xScale和yScale而不仅仅是变换?

ope*_*rog 1 iphone ios sprite-kit sknode

Sprite Kit依赖于zRotation,xScale和yScale,而不仅仅是转换属性.是因为Apple需要旋转和缩放值来计算具有更高性能的物理?

或者为什么他们不会简单地公开转换属性而不是单个属性进行旋转和缩放?

Lea*_*s2D 5

因为他们把自己置于(大多数)潜在用户的心态:

WTF是一个变换???

Eeeeew,数学!

为什么不只有旋转,位置和比例属性???

为什么要这么难?

精灵套装糟透了!1

对于除了一小组程序员和数学家之外的任何人,这些属性自然地表示为旋转,缩放,位置.每个人都理解它们,每个人都可以使用它们,用于转换它们的数学很简单并且被广泛记录,即用cos(x)/ sin(y)围绕一个点旋转.三角学是可管理的.

那些想要使用变换的人会发现将这些属性转换为变换并没有任何困难.变换是一种先进的概念,功能更强大但也更难以使用.

现在告诉Transformians他们将不得不使用原始四元数进行所有计算.同样的事情,只是在更高的层次上.;)

其他方面:

  • CGTransform API既不是Objective-C也不是ARC
  • 物理引擎(Box2D)也没有变换的概念
  • cocos2d也没有转换属性(它们只在内部使用),Sprite Kit是在cocos2d之后建模的.
  • 转换也不常用于其他2D渲染引擎