我有一个名为(player.swift)的类。然后在我的(scene.swift)类中,我这样声明我的对象。

var player: Player?

在我的初始化函数中,我是这样做的
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文件,我的playground运行正常,除了播放器运行不正常。问题在于将播放器节点与.sks文件中的自定义类相关联。我的Xcode项目的名称是“game play”,所以我在模块中编写game play,在自定义类中编写player,在playground中使用相同的sks文件导致问题,我的playground项目的名称是“myplayground”,因此模块名称应该与项目名称相同,所以我将模块字段编辑为myplayground,仍然不工作。所以指导我如何正确地改变它。

最佳答案

方法childNode(withName:)返回已添加到节点层次结构中的现有子节点。如果找不到具有该名称的节点,则返回nil
是否有代码添加名为“player”的节点?它是Player类型的节点吗?有人叫它吗?

关于swift - 自定义类型的ChildNode在Swift Playground返回Nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43155356/

10-13 09:32