我试图将相同的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)
时收到错误。
我想达到的预期最终效果更像是这样。
请告知,谢谢。
答案 0 :(得分:1)
我设法解决了这个问题,但我不确定代码优化......不知何故它可行:)
如果有人知道如何制作更简单,请告诉我。这是最终的代码。
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)
}
}
根据需要获得最终结果。