如何使用 Xcode 7 将 Button 放入带有 Swift 代码的 SpriteKit 中?
How to put Button in SpriteKit with Swift code using Xcode 7?
我尝试在 Xcode 7 Beta 上制作游戏,我几乎完成了但问题是我不知道如何使用 Swift 代码放置按钮,我尝试放置它们在 Main.storyboard 上,但他们的安排不是很好。其中一些变得更大,一些变得更小等等......所以我想知道如何使用代码放置这些按钮,如下图所示。蓝色按钮左起第一个是Leaderboard,然后是Facebook share,twitter share,还有一个默认按钮(可能是Remove Ads)
然后我尝试使用一些代码:
override func didMoveToView(view: SKView) {
backgroundColor = UIColor.whiteColor()
leaderboard()
facebookShare()
twitterShare()
}
func leaderboard() {
let myNode = SKSpriteNode(imageNamed: "buttonLeaderboard")
myNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.40, CGRectGetMaxY(self.frame) * 0.25)
self.addChild(myNode)
}
func facebookShare() {
let facebookShareNode = SKSpriteNode(imageNamed: "buttonFacebookShare")
facebookShareNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.60, CGRectGetMaxY(self.frame) * 0.25)
self.addChild(facebookShareNode)
}
func twitterShare() {
let twitterShareNode = SKSpriteNode(imageNamed: "buttonTwitterShare")
twitterShareNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.80, CGRectGetMaxY(self.frame) * 0.25)
self.addChild(twitterShareNode)
}
但它在这些代码上发现了 3 个错误
"myNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.40, CGRectGetMaxY(self.frame) * 0.25)"
"facebookShareNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.60, CGRectGetMaxY(self.frame) * 0.25)"
"twitterShareNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.80, CGRectGetMaxY(self.frame) * 0.25)"
错误说“预期的','分隔符”,但是当我按照错误说的那样做时,它又发现了另外 3 个错误,这次他们说“'*' 不是前缀一元运算符”,在此要做什么案件 ?有人可以帮助我吗?
要修复编译器错误,您基本上只需要在 *
之后添加一个 space,但最好使用更像 Swift 的样式:
myNode.position = CGPoint(x: frame.maxX * 0.4, y: frame.maxY * 0.25)
位置嘛,调整一下x
坐标。对于尺寸,最简单的方法是提供相同尺寸的图像,这样您就不必缩放它们了?
我尝试在 Xcode 7 Beta 上制作游戏,我几乎完成了但问题是我不知道如何使用 Swift 代码放置按钮,我尝试放置它们在 Main.storyboard 上,但他们的安排不是很好。其中一些变得更大,一些变得更小等等......所以我想知道如何使用代码放置这些按钮,如下图所示。蓝色按钮左起第一个是Leaderboard,然后是Facebook share,twitter share,还有一个默认按钮(可能是Remove Ads)
然后我尝试使用一些代码:
override func didMoveToView(view: SKView) {
backgroundColor = UIColor.whiteColor()
leaderboard()
facebookShare()
twitterShare()
}
func leaderboard() {
let myNode = SKSpriteNode(imageNamed: "buttonLeaderboard")
myNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.40, CGRectGetMaxY(self.frame) * 0.25)
self.addChild(myNode)
}
func facebookShare() {
let facebookShareNode = SKSpriteNode(imageNamed: "buttonFacebookShare")
facebookShareNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.60, CGRectGetMaxY(self.frame) * 0.25)
self.addChild(facebookShareNode)
}
func twitterShare() {
let twitterShareNode = SKSpriteNode(imageNamed: "buttonTwitterShare")
twitterShareNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.80, CGRectGetMaxY(self.frame) * 0.25)
self.addChild(twitterShareNode)
}
但它在这些代码上发现了 3 个错误
"myNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.40, CGRectGetMaxY(self.frame) * 0.25)"
"facebookShareNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.60, CGRectGetMaxY(self.frame) * 0.25)"
"twitterShareNode.position = CGPointMake(CGRectGetMaxX(self.frame) *0.80, CGRectGetMaxY(self.frame) * 0.25)"
错误说“预期的','分隔符”,但是当我按照错误说的那样做时,它又发现了另外 3 个错误,这次他们说“'*' 不是前缀一元运算符”,在此要做什么案件 ?有人可以帮助我吗?
要修复编译器错误,您基本上只需要在 *
之后添加一个 space,但最好使用更像 Swift 的样式:
myNode.position = CGPoint(x: frame.maxX * 0.4, y: frame.maxY * 0.25)
位置嘛,调整一下x
坐标。对于尺寸,最简单的方法是提供相同尺寸的图像,这样您就不必缩放它们了?