From 893741e049c5b5b40278a14bb01515ca98b4864f Mon Sep 17 00:00:00 2001 From: Hassan Emad <> Date: Mon, 4 Jan 2021 13:26:54 +0200 Subject: [PATCH 1/3] Physics updated --- FlappyBird/GameScene.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FlappyBird/GameScene.swift b/FlappyBird/GameScene.swift index af93d4d..9e81077 100644 --- a/FlappyBird/GameScene.swift +++ b/FlappyBird/GameScene.swift @@ -32,7 +32,7 @@ class GameScene: SKScene, SKPhysicsContactDelegate{ canRestart = true // setup physics - self.physicsWorld.gravity = CGVector( dx: 0.0, dy: -5.0 ) + self.physicsWorld.gravity = CGVector( dx: 0.0, dy: -6.0 ) self.physicsWorld.contactDelegate = self // setup background color From a0ffcda5ad1d618440c3b71cfbd01ab2362149a0 Mon Sep 17 00:00:00 2001 From: Hassan Emad <> Date: Mon, 4 Jan 2021 14:20:04 +0200 Subject: [PATCH 2/3] Added difficulty increase and leveling --- FlappyBird/GameScene.swift | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/FlappyBird/GameScene.swift b/FlappyBird/GameScene.swift index 9e81077..fde53bf 100644 --- a/FlappyBird/GameScene.swift +++ b/FlappyBird/GameScene.swift @@ -9,8 +9,8 @@ import SpriteKit class GameScene: SKScene, SKPhysicsContactDelegate{ - let verticalPipeGap = 150.0 - + var verticalPipeGap = 200.0 + var level:Int = 0 var bird:SKSpriteNode! var skyColor:SKColor! var pipeTextureUp:SKTexture! @@ -21,7 +21,8 @@ class GameScene: SKScene, SKPhysicsContactDelegate{ var canRestart = Bool() var scoreLabelNode:SKLabelNode! var score = NSInteger() - + var stageScore:Int = 0; + var levelLabelNode:SKLabelNode!; let birdCategory: UInt32 = 1 << 0 let worldCategory: UInt32 = 1 << 1 let pipeCategory: UInt32 = 1 << 2 @@ -137,7 +138,13 @@ class GameScene: SKScene, SKPhysicsContactDelegate{ scoreLabelNode.position = CGPoint( x: self.frame.midX, y: 3 * self.frame.size.height / 4 ) scoreLabelNode.zPosition = 100 scoreLabelNode.text = String(score) + + levelLabelNode = SKLabelNode(fontNamed:"MarkerFelt-Wide") + levelLabelNode.position = CGPoint( x: self.frame.midX, y: 1 * self.frame.size.height / 4 ) + levelLabelNode.zPosition = 10 + levelLabelNode.text = "lvl:" + String(stageScore) self.addChild(scoreLabelNode) + self.addChild(levelLabelNode) } @@ -199,11 +206,15 @@ class GameScene: SKScene, SKPhysicsContactDelegate{ // Reset score score = 0 + stageScore = 0 scoreLabelNode.text = String(score) - + levelLabelNode.text = "lvl:" + String(stageScore) + verticalPipeGap = 200.0 + // Restart animation moving.speed = 1 } + override func touchesBegan(_ touches: Set, with event: UIEvent?) { if moving.speed > 0 { for _ in touches { // do we need all touches? @@ -227,6 +238,13 @@ class GameScene: SKScene, SKPhysicsContactDelegate{ // Bird has contact with score entity score += 1 scoreLabelNode.text = String(score) + //Update level and diffeculty + if score == stageScore + 8{ + stageScore += 8 + levelLabelNode.text = "lvl:" + String(stageScore/8) + speed += 0.1 + verticalPipeGap = verticalPipeGap - 20.0 + } // Add a little visual feedback for the score increment scoreLabelNode.run(SKAction.sequence([SKAction.scale(to: 1.5, duration:TimeInterval(0.1)), SKAction.scale(to: 1.0, duration:TimeInterval(0.1))])) From 0434c58337d6144974525eed157038450d59cf52 Mon Sep 17 00:00:00 2001 From: Hassan Emad <> Date: Mon, 4 Jan 2021 15:01:46 +0200 Subject: [PATCH 3/3] Bird body impulse decreased --- FlappyBird/GameScene.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FlappyBird/GameScene.swift b/FlappyBird/GameScene.swift index fde53bf..9d8aea2 100644 --- a/FlappyBird/GameScene.swift +++ b/FlappyBird/GameScene.swift @@ -219,7 +219,7 @@ class GameScene: SKScene, SKPhysicsContactDelegate{ if moving.speed > 0 { for _ in touches { // do we need all touches? bird.physicsBody?.velocity = CGVector(dx: 0, dy: 0) - bird.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 30)) + bird.physicsBody?.applyImpulse(CGVector(dx: 0, dy: 22)) } } else if canRestart { self.resetScene()