编码 SpriteKit 游戏,我收到 "Instance member 'minX' cannot be used on type 'CGRect"
Coding SpriteKit game and I am receiving "Instance member 'minX' cannot be used on type 'CGRect"
我无法通过 CGRect.minX/Y 和 CGRect.MaxX/Y 修复此错误消息。 "Instance member 'minX' cannot be used on type 'CGRect" 是错误。我能做些什么来解决它?
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)")
这样可以更轻松地分辨哪些变量是类型,哪些是实例。
我无法通过 CGRect.minX/Y 和 CGRect.MaxX/Y 修复此错误消息。 "Instance member 'minX' cannot be used on type 'CGRect" 是错误。我能做些什么来解决它?
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)")
这样可以更轻松地分辨哪些变量是类型,哪些是实例。