自定义类型的ChildNode在Swift Playground上返回Nil

时间:2017-04-01 09:56:37

标签: swift xcode sprite-kit swift-playground skscene

我有一个名字的类(Player.swift)。然后在我的(Scene.swift)类中,我声明了我的对象。

var player: Player?

然后在我的initializeGame函数中,我这样做

private func initializeGame() {

    player = childNode(withName: "Player") as? Player!;
    //print NIL
    print(player?.name);
    // initializePlayer()is declared in Player.swift
    player?.initializePlayer();
    print(player?.name);
    //Print NIL
    scoreLabel = childNode(withName: "ScoreLabel") as? SKLabelNode!;
    scoreLabel?.text = "0";
}

我在Xcode中制作了我的ios项目,并且工作正常,然后我创建了一个Playground项目并导入了这个项目中的所有xcode文件,我的游乐场正常运行,除了玩家运行不正常。问题在于将播放器节点与.sks文件中的自定义类相关联。我的Xcode项目的名称是“Game play”,所以我在模块中编写Game Play,在自定义类中编写Player,并在Playground中使用相同的sks文件导致问题,我的游乐场项目的名称是“MyPlayground”,因此模块名称应该与项目名称相同,所以我将模块字段编辑为Myplayground,仍然无法正常工作。因此,请指导我如何正确地改变它。

2 个答案:

答案 0 :(得分:0)

方法childNode(withName:)返回已添加到节点层次结构中的现有子节点。如果找不到具有该名称的节点,则返回nil

您是否有代码添加名称为"播放器"?的节点它是Player类型的节点吗?它被叫了吗?

答案 1 :(得分:0)

1 - 打开您的(.sks)文件

2 - 选择播放器节点。

3 - 选择显示自定义班级检查员。

4-Write" MyPlayground_Sources"而不只是MyPlayground。