Sprite kit 为什么sprite工具包中的坐标系会翻转,我可以全局更改它吗?

Sprite kit 为什么sprite工具包中的坐标系会翻转,我可以全局更改它吗?,sprite-kit,skspritenode,Sprite Kit,Skspritenode,我注意到在精灵套件中,坐标系是翻转的 例如,这里有一个SKSpriteNode: SKSpriteNode *car = [SKSpriteNode spriteNodeWithImageNamed:@"car"]; car.position = CGPointMake(0, 0); [road addChild:car]; 汽车位于其父车的中心 当我将位置设置为: car.position = CGPointMake(-50, 0); 然后它被定位在更左边的位置。 但当我想向下移动,增加Y

我注意到在精灵套件中,坐标系是翻转的

例如,这里有一个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总是意味着有东西向下移动。我觉得这更合乎逻辑。有没有办法在精灵工具包中翻转坐标系?

您可以将场景的
yScale
属性设置为-1。所有内容都将颠倒渲染,但您也可以将每个节点的
yScale
属性设置为-1,这将导致它们渲染为右侧向上


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

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

不要反抗,接受它。这是标准的OpenGL坐标系。这会让我感到非常困惑……这并不能回答“我能改变它吗?”