我注意到在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中翻转坐标系?
答案 0 :(得分:8)
您可以将场景的yScale
属性设置为-1。所有内容都会颠倒呈现,但您也可以将每个节点的yScale
属性设置为-1,这将使它们正面朝上呈现。
您还可以创建一个类类别,并使用自定义getter / setter创建一个名为invertedPosition
的属性,该属性会反转默认的position
属性。
答案 1 :(得分:2)
Sprite Kit使用从场景左下角开始的坐标方向(0,0),当你向右移动(增加x)和向上移动(增加y)时,值会增加。