【发布时间】:2015-05-01 12:28:35
【问题描述】:
我是 Swift 新手,正在使用 XCode 6.1.1 我正在制作的游戏是一个数学游戏——所以我使用整数来生成方程值和答案值。答案值将由绵羊字符持有,绵羊是SKNodes。
First- delcare 用于羊值的全局变量。将羊和答案分开的 var 的原因是因为我稍后会检查随机生成的羊 int 是否等于答案。
var sheepValue = 0
var equation = 0
var answer = 0
然后,在生成羊方法中,我还为每只羊生成一个唯一的 int 值 - 并让羊在自身上打印出该值。
let sheepValue = generateNumber3()
let myString = String(sheepValue)
let sheepLabel = SKLabelNode(fontNamed: "MERKIN")
sheepLabel.name = "sheepmathproblem"
sheepLabel.fontColor = SKColor.darkGrayColor()
sheepLabel.fontSize = 30
sheepLabel.text = myString
sheep.addChild(sheepLabel)
下面是随机数生成方法:
func generateNumber3() -> UInt32 {
//generate random number from 1-10
return arc4random_uniform(20) + 1
}
这是我在控制台中打印sheepValue 的地方。出于某种原因,sheepValue 和 equation 值从我将它们声明为全局变量时从未改变。我认为使用“letsheepValue = generateNumber3()”会改变全局变量的值,但我显然遗漏了一些东西。
if CGRectIntersectsRect(sheep.frame, self.sandman.frame) {
if self.sheepValue == self.equation {
println("sheepValue: \(self.sheepValue)")
println("equation: \(self.equation)")
hitSheep.append(sheep)
}
}
感谢您的帮助!抱歉,如果这看起来很基本,我不确定为什么这不起作用..我确实尝试在方法中声明变量,但我需要在 spawnSheep 方法旁边的其他方法中检查羊值,所以我认为全局变量是足够好,所以我可以用其他方法访问它……或者以某种方式使 int 成为绵羊的属性——我不知道该怎么做,或者这是否是个好主意。感谢您的宝贵时间!
【问题讨论】:
标签: swift sprite-kit