作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为障碍物输入了代码,并且使用fruits.append(fruits)行我得到了(见上文)错误,但是使用它正下方的行fruitTracker.append(fruits),一切正常。帮助?提前致谢(:
这是我的类(class)代码:
class MCTFruitGen: SKSpriteNode {
var generationTimer: NSTimer!
var fruits = [MCTFruit]()
var fruitTracker = [MCTFruit]()
func startGeneratingFruitEvery(seconds: NSTimeInterval) {
generationTimer = NSTimer.scheduledTimerWithTimeInterval(seconds, target: self, selector: "generateFruit", userInfo: nil, repeats: true)
}
func stopGenerating() {
generationTimer?.invalidate()
}
func generateFruit() {
var scale: CGFloat
let rand = arc4random_uniform(2)
if rand == 0 {
scale = -1.0
} else {
scale = 1.0
}
let fruits = MCTFruit()
fruits.position.x = size.width/2 + fruits.size.width/2
fruits.position.y = scale * (NMCGroundHeight/160 + fruits.size.height)
fruits.append(fruits)
fruitTracker.append(fruits)
addChild(fruits)
}
func stopFruit() {
stopGenerating()
for fruit in fruits {
fruit.stopFruitMoving()
}
}
}
最佳答案
在generateFruit
中,您创建了一个名为fruits
的局部变量,它隐藏了您的类属性fruits
:
let fruits = MCTFruit()
然后在这一行中,您引用 fruits
,希望其中一个作为局部变量,一个作为类属性:
fruits.append(fruits)
编译器将使用局部变量,这就是您收到错误的原因,因为 fruits
(MCTFruit
的实例)没有 append 方法。
你可以这样解决这个问题:
self.fruits.append(fruits)
但我建议您为局部变量选择另一个名称:
let fruit = MCTFruit()
fruits.append(fruit)
关于 swift SpriteKit : "MCTFruit does not have a member named append?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32414279/
我是一名优秀的程序员,十分优秀!