CatchTheFallingObject is a small iOS arcade game built with Swift and SpriteKit. The player taps falling food items to collect points before they leave the screen.
I built this project while learning SpriteKit from a Jordan Grant YouTube tutorial, then changed and extended the original version by fixing bugs, adjusting the game balance and improving how the scene scales across iPhone and iPad screens.
- Tap a food item before it falls off the screen.
- Each collected item adds 1 point.
- Missing an item removes 1 point.
- The game ends when the score drops below 0.
- After game over, the scene restarts automatically.
- SpriteKit-based gameplay
- Randomly generated collectible food sprites
- Physics-based movement using SpriteKit gravity and velocity
- Score tracking
- Sound effects when an item is collected
- Background music
- Game-over and restart flow
- Layout adjusted for both iPhone and iPad screens
- Swift
- SpriteKit
- Xcode
- iOS
SKSceneSKSpriteNodeSKPhysicsBodySKAudioNodeSKAction
The main gameplay is handled inside GameScene.swift.
When the scene starts, it:
- configures gravity
- creates the score label
- scales the background to cover the current screen
- generates several collectible items
- starts the background music
Collectibles are created from a random selection of food sprites. Each sprite receives a physics body and an upward velocity, while gravity pulls it back down through the scene.
When the player taps a collectible, the item is removed, the score increases and a new item is generated shortly afterwards.
The game also checks for collectibles that have fallen outside the visible scene. Missing one decreases the score and generates a replacement. When the score drops below zero, the game enters its game-over flow and restarts the scene.
The project started as a tutorial exercise, but I used it as a chance to experiment with the game and make my own adjustments.
I:
- fixed bugs I encountered while building and testing the game
- adjusted the scoring and timing to make the game easier to understand and more enjoyable to play
- changed the visual presentation
- adapted the background and gameplay area so the game works more consistently across iPhone and iPad screen sizes
- tested different gameplay values while deciding how quickly collectibles should move and reappear
This project was my introduction to SpriteKit and helped me understand:
- how an
SKScenemanages game content - how SpriteKit's update loop can be used to check changing game state
- how nodes can be created, named, positioned and removed dynamically
- how physics bodies, velocity and gravity affect sprites
- how touch input can be translated into gameplay actions
- how to use sound effects and background music in a SpriteKit scene
- how small changes to timing, movement and scoring can noticeably affect how a game feels
- how layouts designed for one screen can need additional work to behave well across different device sizes
It also gave me another chance to approach development with my QA background: testing different screen sizes, looking for unexpected behaviour and adjusting the game after seeing how it actually felt to play.
The original background image, food sprites, sound effects and music came from the Jordan Grant tutorial that this learning project was based on.
- Add difficulty levels
- Add a leaderboard
- Give different collectibles different point values
- Add animations and visual feedback
- Add power-ups
- Add a proper start and game-over screen
Created by Alisa Shuginova.