所以我在尝试做一些应该很容易的事情时遇到了困难,显然我没有看到什么是错的。 这是代码:
import SpriteKit
var money = "0"
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
/* Setup your scene here */
let moneyLabel = SKLabelNode(fontNamed:"Times New Roman")
moneyLabel.text = money;
moneyLabel.fontSize = 14;
moneyLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame));
self.addChild(moneyLabel)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/* Called when a touch begins */
for touch in touches {
money + 1
}
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
这假设要做的是标签显示变量,当用户触摸屏幕时,变量变化1,每按一次就增加1。 Label应该随变量而变化。 我如何使这项工作?
答案 0 :(得分:2)
您只是将1
添加到money
money + 1
此代码:
money
属性moneyLabel
String
和Int
此代码应该完成工作
import SpriteKit
class GameScene: SKScene {
private var money = 0 {
didSet {
self.moneyLabel?.text = money.description
}
}
private var moneyLabel : SKLabelNode?
override func didMoveToView(view: SKView) {
let moneyLabel = SKLabelNode(fontNamed:"Times New Roman")
moneyLabel.text = money.description
moneyLabel.fontSize = 14
moneyLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))
self.addChild(moneyLabel)
self.moneyLabel = moneyLabel
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
money += touches.count
}
}
正如您所见,我向money
属性添加了一个观察者(顺便说一句,我将其设为Int
属性,而不是代码中的String
!)。
didSet {
self.moneyLabel?.text = money.description
}
感谢观察者,每次资金变更时,都会检索moneyLabel
节点并更新文本。
在didMoveToView
结束时,我将moneyLabel
保存到实例属性
self.moneyLabel = moneyLabel
所以我可以轻松检索(我们在前一点已经看过)
最后在touchesBegan
我只是按接收的触摸次数增加money
属性。
money += touches.count
感谢观察者,对money
属性的每次更改都会触发更新到moneyLabel
节点内的文本。
希望这有帮助。
答案 1 :(得分:0)
这里有三个问题:
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
应该是money
,因此您可以添加它。Int
更新为新值。money
。看看下面的变化;每条评论都解释了为什么需要进行变更:
money