为什么精灵工具包中的坐标系翻转,我可以全局更改吗?

时间:2013-12-22 20:52:14

标签: sprite-kit skspritenode

我注意到在Sprite Kit中,坐标系被翻转了。

例如,这是一个SKSpriteNode:

SKSpriteNode *car = [SKSpriteNode spriteNodeWithImageNamed:@"car"];
car.position = CGPointMake(0, 0);
[road addChild:car];

汽车位于其父母的中心。

当我设定位置时:

car.position = CGPointMake(-50, 0);

然后它位于左侧。 但是当我想把它向下移动并增加Y时,它会向上移动!

car.position = CGPointMake(-50, 20);

在UIKit中,增加Y总是意味着向下移动。这对我来说更合乎逻辑。有没有办法在Sprite Kit中翻转坐标系?

2 个答案:

答案 0 :(得分:8)

您可以将场景的yScale属性设置为-1。所有内容都会颠倒呈现,但您也可以将每个节点的yScale属性设置为-1,这将使它们正面朝上呈现。

您还可以创建一个类类别,并使用自定义getter / setter创建一个名为invertedPosition的属性,该属性会反转默认的position属性。

答案 1 :(得分:2)

Sprite Kit使用从场景左下角开始的坐标方向(0,0),当你向右移动(增加x)和向上移动(增加y)时,值会增加。