我实际上正在使用 Swift SpriteKit 开发游戏。
我设置了 SKSpriteNode 的位置:
skPart1.position = CGPointMake(0, 100)
所以节点应该从最左边的窗口边缘开始。
|-------------------------|
|-------------------------|
|-------------------------|
|-------------------------|
|==========|--------------|
|==========|--------------|
|==========|--------------|
但实际上我的 SKSpriteNode 的一半在屏幕之外:
|-------------------------|
|-------------------------|
|-------------------------|
|-------------------------|
==========|--------------------|
==========|--------------------|
==========|--------------------|
我在 stackoverflow 上读到了同样的问题,但提供的唯一解决方案是将 scaleMode 设置为 AspectFit。 我发现它可以与 SKShapeNode 一起使用。但为什么不在 SKSpriteNode 中呢? 我已经尝试过了。
我该如何解决这个问题?
最佳答案
SKSpriteNode 有一个anchorPoint 属性,默认位于图像的中心,这就是为什么 Sprite 的一半位于屏幕左侧的原因。
您可以调整 anchor ,使其行为类似于 anchor 位于左下角的 SKShapeNode
。试试这个:
skPart1.anchorPoint = CGPointMake(0,0);
我知道您已经接受了答案,但这是处理这种情况的理想方式,也是该属性存在的原因。
关于position - SKSpriteNode 上的 CGPoint x 无法正常工作(一半节点超出屏幕),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24835170/