# Video Tutorial: How to Make a Game Like Flappy Bird in Swift Part 3: Adding the Player

**URL:** <https://forums.kodeco.com/t/video-tutorial-how-to-make-a-game-like-flappy-bird-in-swift-part-3-adding-the-player/6978>\
**Category:** 🎓 Courses & Articles\
**Created:** [March 4, 2016, 12:57pm UTC](https://forums.kodeco.com/t/video-tutorial-how-to-make-a-game-like-flappy-bird-in-swift-part-3-adding-the-player/6978 "2016-03-04T12:57:44Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![paradox927](https://assets.chunter.kodeco.com/user_avatar/forums.kodeco.com/paradox927/32/108365_2.png) [@paradox927](https://forums.kodeco.com/u/paradox927)\
**Post date:** [March 4, 2016, 12:57pm UTC](https://forums.kodeco.com/t/video-tutorial-how-to-make-a-game-like-flappy-bird-in-swift-part-3-adding-the-player/6978/1 "2016-03-04T12:57:44Z")

</div>

Learn about GameplayKit by adding the star of the show, Felipe.

 
* * *
 This is a companion discussion topic for the original entry at [https://www.raywenderlich.com/3875-how-to-make-a-game-like-flappy-bird/lessons/4](https://www.raywenderlich.com/3875-how-to-make-a-game-like-flappy-bird/lessons/4)

---

<div class="post-metadata">

**Author:** ![mazen\_kilani](https://assets.chunter.kodeco.com/user_avatar/forums.kodeco.com/mazen_kilani/32/102600_2.png) [@mazen\_kilani](https://forums.kodeco.com/u/mazen_kilani)\
**Post date:** [September 11, 2016, 7:35am UTC](https://forums.kodeco.com/t/video-tutorial-how-to-make-a-game-like-flappy-bird-in-swift-part-3-adding-the-player/6978/2 "2016-09-11T07:35:12Z")

</div>

Hi Tammy,

When I converted to Swift 3, I resolved all post-conversion errors except one! In SpriteComponent.swift the ‘var entity : GKEntity!’ is causing all sort of errors, as ‘entity’ is now a property with type GKEntity? If I rename it to ‘entityNew’ (or any other name), then the error is transferred to other statements. Please review and advise, thank you heaps in advance.

* * *

import SpriteKit  
import GameplayKit

class EntityNode: SKSpriteNode {  
\*\*

**## weak var entity: GKEntity! // GKEntity!**

\*\*

}

class SpriteComponent: GKComponent {

```
let node: EntityNode

init(entity: GKEntity, texture: SKTexture, size: CGSize) {
    
    node = EntityNode(texture: texture, color: SKColor.white, size: size)
    node.entity = entity
} // end init

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

```

## }

---

<div class="post-metadata">

**Author:** ![emindagci](https://assets.chunter.kodeco.com/user_avatar/forums.kodeco.com/emindagci/32/102075_2.png) [@emindagci](https://forums.kodeco.com/u/emindagci)\
**Post date:** [December 7, 2018, 7:39am UTC](https://forums.kodeco.com/t/video-tutorial-how-to-make-a-game-like-flappy-bird-in-swift-part-3-adding-the-player/6978/3 "2018-12-07T07:39:54Z")

</div>

Hi @paradox927 have an Error on this line. how can I solve it?  
and Thank you! for the great tutorials.

> Binary operator ‘\*’ cannot be applied to operands of type ‘CGPoint’ and ‘CGFloat’

```
    // Apply Gravity
    
    let gravityStep = CGPoint(x: 0, y: gravity) * CGFloat(seconds)
    velocity += gravityStep
  
    //Apply Velocity
    
    let velocityStep = velocity * CGFloat(seconds)
    spriteNode.position += velocityStep

```

---

<div class="post-metadata">

**Author:** ![emindagci](https://assets.chunter.kodeco.com/user_avatar/forums.kodeco.com/emindagci/32/102075_2.png) [@emindagci](https://forums.kodeco.com/u/emindagci)\
**Post date:** [December 7, 2018, 9:12am UTC](https://forums.kodeco.com/t/video-tutorial-how-to-make-a-game-like-flappy-bird-in-swift-part-3-adding-the-player/6978/4 "2018-12-07T09:12:43Z")

</div>

I fixed this Error with declare an extension :

```
extension CGPoint {
static func * ( left : CGPoint , right : CGFloat) -> CGPoint {
    return CGPoint(x: left.x * right, y: left.y * right)
}

static func * ( left : CGFloat , right : CGPoint) -> CGPoint {
    return CGPoint(x: right.x * left, y: right.y * left)
}

```
