【问题标题】:Sprite Kit: No touch response after loading new sceneSprite Kit:加载新场景后没有触摸响应
【发布时间】:2016-08-24 22:51:54
【问题描述】:

当游戏结束时,我试图通过再次加载相同的场景来重置整个场景。但是在它加载之后,屏幕没有记录任何触摸。甚至touchesBegan 都没有工作。其他所有内容、精灵、动画等都已加载,但触摸未注册。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    player.physicsBody?.dynamic = true
    player.physicsBody?.velocity.dy = CGFloat(500)
    createLeftButton()
    createRightButton()

    createRightButtonFirst()
    createLeftButtonFirst()
}

func endGame() {
    gameOver = true
    scoreboardSetup()
    playButton()
    highscoreButton()
    label!.hidden = true
    timer2.invalidate()
    timer1.invalidate()
    player.physicsBody?.dynamic = false
}


func playButton() {
    let image = UIImage(named: "playButton") as UIImage?
    playbtn = UIButton();
    playbtn.setImage(image, forState: .Normal)
    playbtn.frame = CGRectMake(CGRectGetMidX(self.frame) - 152, CGRectGetMidY(self.frame) + 65, 133, 76) // X, Y, width, height

    playbtn.addTarget(self, action: #selector(GameScene.playBtn), forControlEvents: .TouchUpInside)
    self.view!.addSubview(playbtn)
}
func playBtn() {
    playbtn.removeFromSuperview()
    highscorebutton.removeFromSuperview()
    self.removeAllChildren()
    self.removeAllActions()
    self.scene?.removeFromParent()
    let gameScene:GameScene = GameScene(size: self.size) // create your new scene
    let transition = SKTransition.fadeWithDuration(1.0) // create type of transition (you can check in documentation for more transtions)
    self.view!.presentScene(gameScene, transition: transition)

}

【问题讨论】:

    标签: ios swift sprite-kit


    【解决方案1】:

    解决了!必须从场景中删除所有子视图。最简单的方法是这样的:

    view.subviews.forEach({ $0.removeFromSuperview() }) // this gets things done
    view.subviews.map({ $0.removeFromSuperview() }) // this returns modified array
    

    来源:How to remove all subviews of a view in Swift?

    【讨论】:

    • 第二条语句不需要,它返回一个没有用的数组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多