为啥精灵套件中的坐标系会翻转,我可以全局更改吗?

Posted

技术标签:

【中文标题】为啥精灵套件中的坐标系会翻转,我可以全局更改吗?【英文标题】:Why is the coordinate system in sprite kit flipped and can I change that globally?为什么精灵套件中的坐标系会翻转,我可以全局更改吗? 【发布时间】:2013-12-22 20:52:13 【问题描述】:

我注意到在 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中有没有翻转坐标系的方法?

【问题讨论】:

不要与之抗争,拥抱它。这是标准的 OpenGL 坐标系。 嗯,这会让我很困惑...... 【参考方案1】:

您可以将场景的 yScale 属性设置为 -1。一切都会颠倒渲染,但您也可以将每个节点的 yScale 属性设置为 -1,这将导致它们正面朝上渲染。

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

【讨论】:

【参考方案2】:

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

【讨论】:

这并没有回答“我可以改变那个”的问题

以上是关于为啥精灵套件中的坐标系会翻转,我可以全局更改吗?的主要内容,如果未能解决你的问题,请参考以下文章

MTK Android 套件精灵可以卸载吗?

任何想法为啥我在添加声音时在精灵套件中收到此错误?

检测精灵套件中的碰撞

精灵套件目标 c 中的停止按钮

精灵套件游戏中的计分系统

安装系统的时候为啥出现“选择要安装的驱动程序:?