【问题标题】:SpriteKit scene editorSpriteKit 场景编辑器
【发布时间】:2018-08-26 02:46:45
【问题描述】:

在我的GameScene.sks 文件中,我有一个以 GameScene 作为父级的玩家和一个SKLabelNode 作为玩家的子级的玩家。在GameScene.sks 文件中,我将文本设为 0,GameScene.swift 文件中包含以下代码

playerHealthLbl = childNode(withName: "playerHealthLbl") as? SKLabelNode
playerHealthLbl?.text = String(200)

这里的问题是,每当我构建和运行我的项目时,.SKLableNode.text 仍然等于 0 而不是 200。我确保 GameScene.sks 文件中的名称与 GameScene.swift 文件中的名称相同。 此外,如果我将SKLabelNode 的父级切换到场景本身,那么文本将变为 200。任何想法为什么?请指教。

谢谢。

【问题讨论】:

    标签: swift xcode sprite-kit


    【解决方案1】:

    因为标签是玩家而不是自己的孩子

    childNode(withName: "playerHealthLbl")self.childNode(withName: "playerHealthLbl") 相同

    self 是场景(在这种情况下),场景没有名为 "playerHealthLbl"

    所以你想做player.childNode(withName: "playerHealthLbl")

    childNode(withName: "//playerHealthLbl"),无论层级如何,都会横穿所有孩子

    【讨论】:

    • 谢谢你!我一直习惯于硬编码,以至于这么简单的事情变得如此困难-.-
    • 去过那里...很多次...很容易变得如此专注以至于很难看到简单的问题。乐于助人
    • 玩了一个小时左右。猜猜这就是尝试以简单的方式做到的事情。
    • 坚持下去,我曾经也对场景编辑器感到沮丧,但现在我无法想象回到硬编码
    • 太棒了!感谢您的帮助和建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多