Group Group Group Group Group Group Group Group Group

Flappy Felipe Video Tutorial : (Swift4.2) Update

#1

Can not solve this problem ? :thinking:
Video tutorial: Flappy Felipe for Swift 3

I use Xcode 10.1 Swift 4.2

Binary operator ‘+=’ cannot be applied to two ‘CGPoint’ operands

    func updateForeground(){
    worldNode.enumerateChildNodes(withName: "foreground", using: { node, stop in
        if let foreground = node as? SKSpriteNode{
            let moveAmount = CGPoint(x: -self.groundSpeed * CGFloat(self.deltaTime), y: 0)
    foreground.position += moveAmount
    if foreground.position.x < -foreground.size.width{
    foreground.position += CGPoint(x: foreground.size.width * CGFloat(self.numberOfForegrounds), y: 0)
            }    
        }
    })
}

#2

I am not sure if this is still applicable in the latest version of swift but:

I believe the part you are looking for is:

/**

  • Adds two CGPoint values and returns the result as a new CGPoint.
    */
    public func + (left: CGPoint, right: CGPoint) -> CGPoint {
    return CGPoint(x: left.x + right.x, y: left.y + right.y)
    }

/**

1 Like
#3

Yeah! , thanks a lot, but I don’t know how can I use It.
I am new on Swift … , but I try it !

#4

Be sure to ask if you need more help with it!

#5

I ´ve solved this problem!

func updateForeground(){
    worldNode.enumerateChildNodes(withName: "foreground", using: { node, stop in
        if let foreground = node as? SKSpriteNode {
            let moveAmount = CGPoint(x: -self.groundSpeed * CGFloat(self.deltaTime), y: 0)
            
            foreground.position = CGPoint(x: foreground.position.x + moveAmount.x, y: foreground.position.y + moveAmount.y)
            
            let Point = CGPoint(x: foreground.size.width * CGFloat(self.numberOfForegrounds), y: 0)
            
            if foreground.position.x < -foreground.size.width{
                foreground.position = CGPoint(x: foreground.position.x + Point.x, y: foreground.position.y + Point.y)
            }
          
        }
    })
}
#6

@emindagci Thank you for sharing the solution - much appreciated! :]

#7

The file quoted contains a lot of extensions for Apple’s inbuilt CGPoint for functionality that is not supplied by default. It includes instructions to the compiler on how to add two CGPoints [public func + (left: CGPoint, right: CGPoint) -> CGPoint] and an implementation for the += operator; as well as the ability to add a CGVector to a CGPoint.

This file needs to be added to your project; and then you can ‘magically’ call the code you have above and it will work, so no need for you to implement this yourself.

closed #8

This topic was automatically closed after 166 days. New replies are no longer allowed.