我无法通过CGRect.minX / Y和CGRect.MaxX / Y修复此错误消息。错误“无法在类型'CGRect上使用实例成员'minX'”。我该如何解决?
func spawnNewDisc(){
var randomImageNumber = arc4random()%4
randomImageNumber += 1
let CheeseBlock = SKSpriteNode(imageNamed: "CheeseBlock\(randomImageNumber)")
CheeseBlock.zPosition = 2
CheeseBlock.name = "CheeseObject"
let randomX = random(min: CGRect.minX(gameArea) + CheeseBlock.size.width/2,
max: CGRect.maxX(gameArea) - CheeseBlock.size.width/2)
let randomY = random(min: CGRect.minY(gameArea) + CheeseBlock.size.height/2,
max: CGRect.maxY(gameArea) - CheeseBlock.size.height/2)
CheeseBlock.position = CGPoint(x: randomX, y: randomY)
self.addChild(CheeseBlock)
}
minX
,maxX
等是实例属性,这意味着需要在CGRect
实例上调用它们,而不是类型本身。
更改
CGRect.minX(gameArea)
至
gameArea.minX
旁注:在Swift(以及其他语言)中,了解类型和实例之间的区别也很重要。在Swift中,约定是以大写字母开头的类型以及以小写字母开头的实例的名称。
您的代码行
let CheeseBlock = SKSpriteNode(imageNamed: "CheeseBlock\(randomImageNumber)")
应该更改为
let cheeseBlock = SKSpriteNode(imageNamed: "CheeseBlock\(randomImageNumber)")
这使得更容易分辨哪些变量是类型,哪些变量是实例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句