【问题标题】:Swift - SKAction moveByX, How to get my node to move from the top/downSwift - SKAction moveByX,如何让我的节点从上/下移动
【发布时间】:2016-01-23 00:05:35
【问题描述】:

请原谅我,因为我是一个 Swift 菜鸟,并且正在创建我的第一款游戏:D

好的,所以我有两个节点...一个是 Guava,另一个是 Pepper。 Guava 从屏幕底部移动到顶部。我希望 Pepper 从屏幕顶部移动到底部。这是我的代码,它适用于 Guava。

// movement of guavas
let guavaToMove = CGFloat(self.frame.size.width + 2.0  * guavaNodeTexture.size().width)
let moveGuava = SKAction.moveByX(-guavaToMove, y: self.frame.size.width, duration: NSTimeInterval(0.01 * guavaToMove))
let removeGuava = SKAction.removeFromParent()

// movement of peppers
let pepperToMove = CGFloat(self.frame.size.width + 2.0  * pepperNodeTexture.size().width)
let movePepper = SKAction.moveByX(-pepperToMove, y: self.frame.size.width, duration: NSTimeInterval(0.01 * pepperToMove))
let removePepper = SKAction.removeFromParent()

    GuavaMoveAndRemove = SKAction.sequence([moveGuava,removeGuava])

    PepperMoveAndRemove = SKAction.sequence([movePepper,removePepper])

现在我将 Guava 节点锚定在屏幕底部,它完美地浮起。我将 Pepper 节点固定在屏幕顶部,并试图让它以类似的方式向下浮动。

这是两个函数 spawnGuava 和 spawnPepper 的代码,其中两个节点/纹理都被锚定:

func spawnPepper(){

        //The way the Guava spawn and move

        let pepperNode = SKNode()

        let pepper = SKSpriteNode(texture: pepperNodeTexture)

        pepper.setScale(0.30)
        pepper.position = CGPointMake (self.size.width + 140, self.size.height * 0.75)
        pepper.alpha = 0.75
        pepper.physicsBody = SKPhysicsBody(rectangleOfSize: pepper.size)
        pepper.physicsBody?.affectedByGravity = false
        pepper.physicsBody?.dynamic = true
        pepper.physicsBody?.categoryBitMask = PhysicsCatagory.Guava
        pepper.physicsBody?.collisionBitMask = 1
        pepper.physicsBody?.contactTestBitMask = PhysicsCatagory.Boognish

        pepper.zPosition = 50

        pepperNode.addChild(pepper)


        pepper.runAction(PepperMoveAndRemove)

        self.addChild(pepperNode)


        if scoreIncreased == true {


        }



        //the way the pepper collide

    }


    func spawnGuava(){

        //The way the Guava spawn and move

        let guavaNode = SKNode()

        let guava = SKSpriteNode(texture: guavaNodeTexture)

        guava.setScale(0.75)
        guava.position = CGPointMake (self.size.width - 40, self.size.height * 0.05)
        guava.physicsBody = SKPhysicsBody(rectangleOfSize: guava.size)
        guava.physicsBody?.affectedByGravity = false
        guava.physicsBody?.dynamic = true
        guava.alpha = 0.75
        guava.physicsBody?.categoryBitMask = PhysicsCatagory.Guava
        guava.physicsBody?.collisionBitMask = 1
        guava.physicsBody?.contactTestBitMask = PhysicsCatagory.Boognish

        guava.zPosition = 0

        guavaNode.addChild(guava)


        guava.runAction(GuavaMoveAndRemove)

        self.addChild(guavaNode)


        if scoreIncreased == true {


        }



        //the way the guava collide

    }

请帮助我相应地配置此代码,以便辣椒从天上掉下来:)

提前致谢。第一篇:)

仅供参考:我自己多次尝试修改代码均无济于事,因此我将其恢复为您现在看到的基线。如果我将辣椒锚定在番石榴锚定的位置,那么两者都会同时浮起来。

【问题讨论】:

    标签: swift sprite-kit swift2


    【解决方案1】:

    您正试图将番石榴和辣椒朝相反的方向移动,但您似乎在朝同一个方向移动它们。尝试在movePepper 中删除或添加负号:

    let movePepper = SKAction.moveByX(-pepperToMove, y: -self.frame.size.width, duration: NSTimeInterval(0.01 * pepperToMove))
    

    【讨论】:

    • 感谢您的回复,但我已经尝试过了。经过一些研究,我相信 SKAction.moveByX 中 pepperToMove 前面的 (-) 符号可以设置运动的来源,而不一定是运动的去向。另外,添加(+)也没有反向效果。我只是在Guava节点上测试了它,删除(-)后节点完全消失了
    • moveByX 中的 y 值怎么样? let movePepper = SKAction.moveByX(-pepperToMove, y: -self.frame.size.width, duration: NSTimeInterval(0.01 * pepperToMove))
    • 我以最简单的方式弄清楚了,小调整:) 见上面的答案。感谢您与我们联系:D
    • 不错!仅供参考,除以 -1 与乘以 -1 相同。
    【解决方案2】:

    // 辣椒的运动 let pepperToMove = CGFloat(self.frame.size.width + 2.0 * pepperNodeTexture.size().width) 让 movePepper = SKAction.moveByX(-pepperToMove, y: self.frame.size.height / -1, duration: NSTimeInterval(0.01 * pepperToMove)) 让 removePepper = SKAction.removeFromParent()

    只需将 y 值除以负数,derp...:D

    【讨论】:

      猜你喜欢
      • 2015-05-26
      • 2017-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      相关资源
      最近更新 更多