swift - 多次添加 SKSpriteNode 但位置不同

标签 swift sprite-kit skspritenode

我正在尝试将相同的 SKSpriteNote 添加到同一场景中四次,但我无法弄清楚具体如何操作。

我找到了旧教程,但我很难在 swift 中成功实现它。

GameScene.swift

import SpriteKit

class GameScene: SKScene {

var brick = SKSpriteNode(imageNamed: "brick")

func addBricks(size:CGSize){
    for var i = 0; i < 4; i++ {

        // Brick settings
        self.brick.physicsBody = SKPhysicsBody(rectangleOfSize: brick.frame.size)
        self.physicsBody!.dynamic = false

        // Brick positioning
        var xPos = brick.size.width/5 * (i + 1)
        var yPos = brick.size.height - 50
        self.brick.position = CGPointMake(xPos, yPos)

        self.addChild(brick)
    }
}

override func didMoveToView(view: SKView) {

    self.addBricks(size)

    }

}

我在创建 var xPos = brick.size.width/5 * (i + 1) 的行中收到错误。

我想要达到的预期最终效果是这样的。

enter image description here

请指教,谢谢。

最佳答案

我设法解决了这个问题,但我不确定代码优化......不知何故它有效:)

如果有人知道如何制作更简单,请告诉我。这是最终代码。

    func addBricks(size:CGSize){
    for var i = 0; i < 4; i++ {

        let brick = SKSpriteNode(imageNamed: "brick")

        // Brick settings
        brick.physicsBody = SKPhysicsBody(rectangleOfSize: brick.frame.size)
        brick.physicsBody!.dynamic = false

        // Brick positioning
        var xPos = size.width/5 //CGFloat
        var xPosInt = Int(xPos) * (i + 1) // Int
        xPos = CGFloat(xPosInt) // Convert to CGFloat again
        var yPos = size.height - 50

        brick.position = CGPointMake(xPos, yPos)

        self.addChild(brick)


    }
}

最终结果如愿。 enter image description here

关于swift - 多次添加 SKSpriteNode 但位置不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25788742/

相关文章:

ios - SKScene分配错误

ios8 - 为什么 [NSSet containsObject] 在 iOS8 中对 SKNode 成员失败?

swift - 检查 SKSpriteNode 何时经过某个点或线

ios - 无法使用 removeFromParent : Swift 删除点击的 spriteNode

sprite-kit - 获取和更改 SKSpriteNode 的 SKColor(HSBA) 的色调?

ios - 获取 UITableView 每一行的高度

ios - AVPlayer 会停止用户的音乐吗?

swift - 关闭时模态 Controller 仍然是最顶层的 View Controller

ios - 如何在 DidReceiveLocalNotification 的警报处理程序/闭包中添加来自 VC 的方法?

ios - 将字典对象从 Obj-C 传递到 Swift