当前位置: 首页 > 面试题库 >

使用Swift了解坐标系统SpriteKit的问题

诸经略
2023-03-14
问题内容

我在使用Swift使用SpriteKit完全掌握坐标系时遇到麻烦。我看过许多资源,包括apples dev
docs,但是由于某种原因,我感到非常困惑(我敢肯定这一定很简单)。

我有一个继承自SKScene的GameScene类。我只是想使用各种坐标将SKSpriteNode添加到屏幕,以习惯屏幕布局。我相信,当您创建任何SKNode并通过执行以下操作为其指定位置时,

var node = SKSpriteNode(color: UIColor.brownColor(), size: CGSizeMake(100, 100))
node.position = CGPointMake(0, 0)

然后使用

self.addChild(node)

提供给节点的坐标是父节点中的坐标。这是否意味着应将已创建的棕色正方形放在左下角?

显然不是这样,这让我感到困惑。我正在使用iPhone 5s模拟器进行纵向测试。

当我将位置设置为(350,50)时,精灵节点仅显示在左下方。


问题答案:

选择GameScene.sks在Project Navigator中,选择SKScene(它应该有一个黄色边框圆吧)和它的大小属性设置为320点X
569点(这是假设的iPhone5 /
5S)无论哪种方式,这就是问题所在。另外,请确保您再次检查它,因为我确定它已变回1024x768,但现在似乎可以正常工作。



 类似资料:
  • 在上一个教程中,我们学习了如何有效地利用矩阵的变换来对所有顶点进行变换。OpenGL希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说,每个顶点的x,y,z坐标都应该在-1.0到1.0之间,超出这个坐标范围的顶点都将不可见。我们通常会自己设定一个坐标的范围,之后再在顶点着色器中将这些坐标变换为标准化设备坐

  • 从我的阅读中,我了解到LibGdx使用左下角表示0、0和yup。好吧。我看到,如果我愿意,很容易将其改为y,但我不明白接下来创建的代码。 对于创建的默认精灵,位置设置如下。 当我运行这个基本程序时,我看到我添加的标志图像在屏幕上居中。我想要理解的是,为什么设置位置的值是负值,为什么使用sprite width和height而不是视图端口的w、h?如果我更改为屏幕宽度和高度,那么图像将绘制在屏幕右下

  • 我目前正在做一个libgdx项目。这就是我要遵循的结构: 单个游戏-几个屏幕-每个屏幕有一个舞台-每个舞台有一些组-每个组有一些演员-每个演员有一个精灵。 我正在玩在组之间拖动演员,但是当我将演员添加到组中时,即使我指定了其他人,坐标也始终为0,0。 我读过一些关于局部坐标和舞台坐标的内容。 问题是...如何在组的中间添加一个Actor(及其精灵)?

  • 问题内容: 模拟器显示节点数,即有2个节点。但是为什么呢?由于只有一个var(ball)。有没有一种方法可以创建一个圆而不使它成为两个节点。 问题答案: 这是因为设置了SKShapeNode 。显然,设置或时,它们每个都需要附加的节点和附加的绘制过程。默认情况下,已经设置了strokeColor(一个节点,一个绘制过程),并且由于另外设置了,因此要渲染形状需要两个节点(和两个绘制过程)。 由于明显

  • 我试图更深入地理解OpenGL,但我遇到了以下问题。 这部分描述了我的理解,输出是假设的。 上述代码段的窗口坐标(Wx、Wy、Wz)为 (272.00000286102295,111.99999332427979,5.9604644775390625e-008) (527.99999713897705,111.99999332427979,5.9604644775390625e-008) (527

  • 本文向大家介绍Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系,包括了Cocos2d-x学习笔记之世界坐标系、本地坐标系、opengl坐标系、屏幕坐标系的使用技巧和注意事项,需要的朋友参考一下  cocos2d-x的坐标系很重要,想要学好该引擎,深入理解它的坐标体系很重要。注释写的很清楚了,对照上运行结果一块来看代码吧!