【问题标题】:Why does my SKSpriteNode move so far when I take anchorpoint (0.5,0.5) into consideration?当我考虑锚点(0.5,0.5)时,为什么我的 SKSpriteNode 会移动这么远?
【发布时间】:2021-03-04 07:43:32
【问题描述】:

在将一个 SKSpriteNode(条形)放在另一个 SKNode(基)上时,它会按应有的方式出现。其中一半位于底座顶部,另一半位于底部。代码如下:

self.position = CGPoint(x: self.size.width/2, y: myGV.gemBaseSize.height )

结果是有意义的,因为条形的锚点是 0.5 0.5。

当我考虑到锚点时,栏最终会在底座上方。

self.position = CGPoint(x: self.size.width/2, y: myGV.gemBaseSize.height + (self.size.height/2))

下面是显示第一次和第二次尝试的图像,下面是条形图的完整代码" ...仅更改了代码中的 self.position 行。您可能需要放大,但较低的左图显示吧台一半在底座上,一半在底座上。

如果有人知道发生了什么,我真的可以寻求帮助。

screen shot of both attempts

以防万一,栏的完整代码在这里:

import Foundation
import SpriteKit
class MyBorder : SKSpriteNode{
    var nodeType = NodeType.border
    init(){
         //create SKSpriteNode, size it based on screen size
        super.init(texture: SKTexture(imageNamed: "border"), color: .clear, size: CGSize(width: myGV.safeSceneRect.width, height: myGV.safeSceneRect.height * 0.07))
        self.anchorPoint = CGPoint(x: 0.5, y: 0.5)
        self.isHidden = true
        self.isUserInteractionEnabled = false
        self.zPosition = theZ.border
        self.alpha = 0.5
        // position border on top of block
        self.position = CGPoint(x: myGV.safeSceneRect.width/2, y: myGV.blockBaseSize.height)
        print("Screen Size \(myGV.safeSceneRect)")
        print(“Block Size \(myGV.blockBaseSize)")
        print("Border Size \(self.size)")
        print("Border Pos \(self.position)")
        myGV.gameScene!.addChild(self)
        self.isHidden = false
    }
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

【问题讨论】:

  • 这篇文章stackoverflow.com/questions/1968017/…中有很多关于锚点的有用信息。我很久以前遇到过类似的问题,如果我没记错的话,我在这里的某个地方找到了我的解决方案。
  • @bsod 阅读。我不认为这是一个锚点问题。就像我说的那样,第一个结果完全有意义(条在中间的地方)。据我所知,我所做的调整是正确的。

标签: swift sprite-kit skspritenode


【解决方案1】:

我的愚蠢错误。与其删除我的问题,不如在这里给出答案,以防万一它对其他人有所帮助。

我错误地保存了纹理文件。

It was padded on top and bottom with transparent area

【讨论】:

    猜你喜欢
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    相关资源
    最近更新 更多