【问题标题】:AnchroPoint x:0, y:0 not working with equationAnchroPoint x:0, y:0 不适用于方程
【发布时间】:2018-04-23 22:51:53
【问题描述】:

我正在尝试构建一个 Breakout 游戏,在该游戏中,我使用 1 个 SKSpriteNode 为每个级别设置了我想要的砖块。这一切都有效,因为它们产生但远离屏幕左下角。我在 didMove 开头使用以下行(查看:SKView):

scene?.anchorPoint = CGPoint(x: 0.0, y: 0.0)

我用来生成砖块的代码是:

//MARK: Brick Layout Config
let widthOfTiles = 7
let heightOfTiles = 3

let widthPoints = 50
let heightPoints = 20

// Different tile arrangements (e.g. 7 tiles wide, 3 high, 7*3 = 21 total tiles)
var brickArray = [false,  true, false,  true, false,  true, false,
                  false,  true,  true,  true, false,  true, false,
                  false,  true, false,  true, false,  true, false] // Says 'HI' using tiles

override func didMove(to view: SKView) {

    //MARK: Brick
    for tile in 0..<brickArray.count {
        if brickArray[tile] == true {

            let brick = SKSpriteNode(imageNamed: "red_brick")

            brick.position = CGPoint(x: (tile % widthOfTiles) * (widthPoints) - (widthOfTiles / 2 * (widthPoints)),
                                     y: ((tile - (tile % widthOfTiles)) / widthOfTiles) * (heightPoints) - (heightOfTiles / 2 * (heightPoints)))
            brick.size = CGSize(width: widthPoints, height: heightPoints)
            brick.physicsBody = SKPhysicsBody(rectangleOf: brick.frame.size)
            brick.physicsBody?.friction = 0
            brick.physicsBody?.allowsRotation = false
            brick.physicsBody?.friction = 0
            brick.physicsBody?.isDynamic = false
            brick.physicsBody?.categoryBitMask = brickCategory
            self.addChild(brick)
        }
    }
}

我这辈子都无法把它放在场景的中心。也许有人可以帮我解决这个问题。数学是我的一个弱点,虽然我认为我得到了适合产卵的方程式,但位置还差得很远。

如果我遗漏了您需要查看的内容,请告诉我。

【问题讨论】:

  • 为什么要将锚点设置在 0,0?默认值 0.5,0.5 是否不适用于特定动画?如果需要 0,0,您将不得不调整位置以定位到您想要的位置。有些问题表明这是需要调整的
  • 我已经习惯了 0,0。并且无法在 0.5 左右得到我的头
  • 除非这是特定于动画的,否则不要更改锚点。否则,您将获得不同的位置视觉表示。
  • 我明白了,谢谢,你能把它作为答案,这样我就可以结束这个问题了。
  • 如果您采用屏幕尺寸/2 并减去您的瓷砖周长/2,这将使您的块居中。所以scene.width / 2 - (widthPoints * widthOfTiles) / 2 是你的起始位置,然后在这个数字上加上瓦片偏移位置(或者使用另一个SKNode为你偏移)

标签: ios arrays swift sprite-kit anchorpoint


【解决方案1】:

除非您需要依赖于锚点的动画,否则我不会设置它并将其保留为默认值,否则它将改变图层位置的视觉表示。

【讨论】:

    猜你喜欢
    • 2014-11-09
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    相关资源
    最近更新 更多