【发布时间】:2017-11-17 03:08:04
【问题描述】:
我可以完全在代码中制作精灵,但我不知道如何将精灵放置在 gamescene.sks 中,然后在 gamescene.swift 中引用它以对其进行更改,就像我对 IBOutlet 一样。
我可以在 gamescene.sks 中使用名为“beam”的精灵来做到这一点:
let beam = childNode(withName: "beam") as! SKSpriteNode
在
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
let touchLocation = touch!.location(in: self)
let beam = childNode(withName: "beam") as! SKSpriteNode
if let body = physicsWorld.body(at: touchLocation) {
if body.node!.name == "leftTap" {
beam.rotateBy(CGFloat(10))
print("Began touch on Left")
}else if body.node!.name == "rightTap"{
beam.rotateBy(CGFloat(-10))
print("Began touch on right")
}
}
}
}
它可以工作,我最初将精灵放在 gamescene.sks 中并在此处引用它。但是当我放置这条线时:
let beam = childNode(withName: "beam") as! SKSpriteNode
gamescene.swift 中的任何其他地方,它都会抛出错误,说我需要将其更改为:
let beam = SKSpriteNode(withName: "beam") as! SKSpriteNode
然后当我更改它时,我收到一条错误消息:“参数标签'(withName :)'不匹配任何可用的重载”
我是 sprite kit 的新手,希望得到一些建议!
【问题讨论】:
标签: ios swift swift3 sprite-kit