Swift 如何在合并时设置整个屏幕的动画?

Swift 如何在合并时设置整个屏幕的动画?,swift,sprite-kit,Swift,Sprite Kit,我想让屏幕在敌人围攻玩家时震动。我一直在寻找一个可能的答案,但什么也没找到。如果有人能帮我,谢谢。试试这个 func shakeFrame(scene: SKScene) { let animation: CABasicAnimation = CABasicAnimation(keyPath: "position") animation.duration = 0.05 animation.repeatCount = 4 animation.autoreverse

我想让屏幕在敌人围攻玩家时震动。我一直在寻找一个可能的答案,但什么也没找到。如果有人能帮我,谢谢。

试试这个

func shakeFrame(scene: SKScene) {

    let animation: CABasicAnimation = CABasicAnimation(keyPath: "position")
    animation.duration = 0.05
    animation.repeatCount = 4
    animation.autoreverses = true
    animation.fromValue = NSValue(CGPoint: CGPointMake(scene.view!.center.x - 4.0, scene.view!.center.y))
    animation.toValue = NSValue(CGPoint: CGPointMake(scene.view!.center.x + 4.0, scene.view!.center.y))
    scene.view!.layer.addAnimation(animation, forKey: "position")
}
在你的情况下,试试这个

func shakeFrame(scene: SKScene) {

    let animation: CABasicAnimation = CABasicAnimation(keyPath: "position")
    animation.duration = 0.05
    animation.repeatCount = 4
    animation.autoreverses = true
    animation.fromValue = NSValue(CGPoint: CGPointMake(scene.view!.center.x - 4.0, scene.view!.center.y))
    animation.toValue = NSValue(CGPoint: CGPointMake(scene.view!.center.x + 4.0, scene.view!.center.y))
    scene.view!.layer.addAnimation(animation, forKey: "position")
}

if hits < 2 && circuloPrincipal.color != enemigo.color {
    shakeFrame()
}
func shakeFrame(场景:SKScene){
让动画:CABasicAnimation=CABasicAnimation(关键路径:“位置”)
动画。持续时间=0.05
animation.repeatCount=4
animation.autoreverses=true
animation.fromValue=NSValue(CGPoint:CGPointMake(scene.view!.center.x-4.0,scene.view!.center.y))
animation.toValue=NSValue(CGPoint:CGPointMake(scene.view!.center.x+4.0,scene.view!.center.y))
scene.view!.layer.addAnimation(动画,forKey:“位置”)
}
如果点击<2&&circuloPrincipal.color!=enemigo.color{
摇架()
}

我已经将它添加到了我的colision函数中,但它不能使动画Diego生效。我必须认真地质疑你的技能水平,并建议你从一些swift基础教程开始。这是一个函数。调用函数时,不要将其插入代码块。如果该函数有效,并回答了您的问题,请将其标记为正确答案