使GameScene成为ViewController的委托

时间:2016-02-16 01:06:27

标签: swift delegates

我正在尝试将一些数据从我的ViewController传递到一个gamescene,并使用委托模式调用该场景上的方法。在我的视图控制器中,我设置了一个launchDelegate并设置了一个变量:

weak var launchDelegate: LaunchDelegate?

然后,当用户按下启动按钮时,它会触发一个函数,我检查委托并使用我需要传递的数据调用该方法。

if let delegate = launchDelegate
    {
        delegate.launch(angle: Int(angleSlider.value), velocity: Int(velocitySlider.value))
    }

在我的游戏场景中,我遵守协议并将viewcontroller的委托设置为self(GameScene)。

var viewController: GameViewController?

override func didMoveToView(view: SKView)
{
    backgroundColor = UIColor(hue: 0.669, saturation: 0.99, brightness: 0.67, alpha: 1)
    physicsWorld.contactDelegate = self
    viewController?.launchDelegate = self
}

现在,当用户按下启动按钮时,没有任何事情发生。它只是挂起,代表是零?任何人都知道为什么代表没有被设置?

0 个答案:

没有答案