当另一个节点的子节点时,Spritekit节点zRotation不保持节点的宽高比

时间:2015-11-18 01:20:01

标签: swift sprite-kit aspect-ratio coordinate-systems

我正在构建游戏,我希望能够旋转节点。如果该节点的父节点是self(GameScene),我可以完全旋转,但是如果我将节点添加为另一个节点的子节点不具有相同的width x height比例,那么失去它的纵横比。

我想我可以简单地找到场景比率并在更改父节点后将节点的宽度乘以它,这样可以正常工作但是...当我旋转节点(zRotation)时,它会再次拉伸。最大拉伸是节点以90度旋转,因为新的父节点是一个高于大的矩形。

我想知道是否有办法在旋转和更改节点父节点(坐标系)时始终保持纵横比不变?

我只是将节点添加到bigRectangle(GameScene上的一个大矩形)。它看起来在矩形上拉伸(如果我将它添加到GameScene则不会这样)所以我通过这样做来改变比率:

let myRatio = self.frame.height / self.frame.width
myNode.xScale = 1
myNode.yScale = 1 * myRatio

这有效,但当节点旋转(zRotation)时,它会再次拉伸......

我添加了照片;

Before rotation, ratio is good

After rotation, ratio is broken

1 个答案:

答案 0 :(得分:0)

你必须在场景本身配置它:

scene.scaleMode = .AspectFill