首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SKLabelNode中存储整数值

如何在SKLabelNode中存储整数值
EN

Stack Overflow用户
提问于 2017-08-07 16:28:12
回答 4查看 254关注 0票数 0

我试图在SKLabelNode中存储整数值,但我一直收到一个错误,即我只能存储字符串。稍后我需要它作为一个整数。下面是我的代码:

代码语言:javascript
复制
import SpriteKit
import GameplayKit

class GameScene: SKScene {

override func didMove(to view: SKView) {

    var comScore = SKLabelNode()
    comScore.fontName = "Pong Score"
    comScore.text = 0
    comScore.fontSize = 100
    comScore.color = SKColor.white
    comScore.position = CGPoint(x: 200, y: 220)
    comScore.zPosition = 3
    addChild(comScore)

}
}

非常感谢您的帮助,因为我是SpriteKit的新手。

EN

回答 4

Stack Overflow用户

发布于 2017-08-07 16:32:57

SKLabelNodetext属性是字符串,而不是整型。您可以通过添加引号使其成为字符串:

代码语言:javascript
复制
comScore.text = "0"

或者,您可以将Int变量转换为字符串:

代码语言:javascript
复制
comScore.text = String(myIntValue)
票数 0
EN

Stack Overflow用户

发布于 2017-08-07 16:49:50

我通过将其初始存储为字符串,然后使用以下代码来回转换来修复此问题:

代码语言:javascript
复制
var comScoreInt: Int = Int(comScore.text!)!
comScoreInt += 1
comScore.text = String(comScoreInt)
票数 0
EN

Stack Overflow用户

发布于 2017-08-07 16:56:38

除了关于In和String的其他答案之外,如果你在你的分数上坚持一个属性观察者,你可以在你更新分数时自动更新标签:

代码语言:javascript
复制
var comScoreInt: Int {
   didSet{
      comScore.text = String(comScoreInt)
      }
   }

编辑:

根据您自己的答案,如果您希望根据score标签中的值初始化score,则将整数score设置为计算属性:

代码语言:javascript
复制
var comScoreInt -> Int {
   get {
      return Int(comScore.text!)
       }
   set(newScore) {
      comScore.text = String(newScore)
      }
   }

现在您可以检索comScoreInt,它将返回分数标签中的值,并设置comScoreInt,它将更新标签。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45542479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档