swift - SKAction 按键改变 Sprite 行为

标签 swift sprite-kit skaction

我在背部手术期间一直在学习 Swift,非常感谢任何对此方面的帮助。

问题描述: 我有一个函数,可以在击中时将 Sprite 向后推。当我使用时

self.runAction(jumpBackSequence)

我得到了想要的行为。 ( Sprite 被推回一段距离。)

enter image description here

现在,当我更新它以使用“withKey”时(因为我需要能够在下一次接触时再次停止前进 Action ,前进运动会大大减弱。

self.runAction(jumpBackSequence, withKey: "moveStraightLine")

enter image description here

创建此操作的函数如下:

 func pushBack(){
            self.removeActionForKey("moveStraightLine")

            let height:CGFloat = 5
            let jumpDistanceA:CGFloat = 20
            let jumpDistanceB:CGFloat = 20
            let duration:NSTimeInterval = 0.15

            let jumpUp = SKAction.moveByX(0, y:height, duration:duration)
            let moveBack = SKAction.moveByX(jumpDistanceA, y: 0, duration: duration)
            let jStep1 = SKAction.group([jumpUp, moveBack])

            let jumpDown = SKAction.moveByX(0, y:(height * -1), duration:duration)
            let moveBack2 = SKAction.moveByX(jumpDistanceB, y: 0, duration: duration)
            let jStep2 = SKAction.group([jumpDown, moveBack2])

            let moveZombie1 = SKAction.moveToX(0, duration: spawnSpeed1()   )
            let removeZombie1 = SKAction.removeFromParent()
            let moveAndRemoveZombie1 = SKAction.sequence([moveZombie1, removeZombie1])

            let jumpBackSequence = SKAction.sequence([jStep1, jStep2, moveAndRemoveZombie1])

            self.runAction(jumpBackSequence)

  //          self.runAction(jumpBackSequence, withKey: "moveStraightLine")
}

最佳答案

您使用的是 moveTo,而不是 moveBy,因此当您重新添加 Action 来移动僵尸时,您现在是说从较近的位置开始,花费 X 秒移动到末尾,而不是花费 X 秒 - 时间已经旅行过了。由于您看到的效果,您不希望出现这种情况。使用moveBy,僵尸速度会保持一致

关于swift - SKAction 按键改变 Sprite 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37847941/

相关文章:

swift - 如何在类型化为协议(protocol)的 Swift 通用数据结构中使用弱引用?

ios - Swift 3.0 今天扩展了具有动态高度的紧凑模式

ios - iOS Spritekit 和 Android Andengine 之间的物理标准化

ios - 雪碧/SKScene : How to draw from top-left instead from bottom-left?

animation - SpriteKit : run code or block when action removed?

ios - 如何将照片从一个 View Controller 传输到另一个 View Controller 的 UIImageView

ios - SQLite3 获取行 ID 时出现问题

ios - Spritekit 跳跃物理

swift - 如何在运行序列之前等待一段时间?

swift - SpriteKit + Swift - 如何使用缓动移动节点?