Tuesday Discount - Lifetime Access for $20!!!! - Click Here!

Pinball Game Tutorials for tvOS and iOS Index

    Login               Join          





Pinball Game Tutorials for tvOS and iOS

Learn to program countless of physics based games with Swift and Sprite Kit, while you watch in real-time as we build the foundation of an amazing Pinball Starter Kit for tvOS and iOS apps.

Created by: Justin

😍 1   👍 1   😐 0




Get full access...


Lifetime Access!

Get access to everything forever. Yes, everything. Yes, forever. Our best deal for sure! Need a coupon? Skip googling for one...

Activate a 24hr promo for first time visitors


Subscribe Yearly

Yearly subscribers get access to everything! Auto-cancels after two billings, at which point you qualify for a free Lifetime Membership!
Compare All Options


Purchase just this!

Get lifetime access to this course / product. 90% of the sale price goes to the author!



Want to feel warm and fuzzy??

If found us through one of our creator's links they'll get 50% of the sale!! That's how much we love our contributers!



Section 1

Initial Project Setup, Flippers and Ball

In this first session of tutorials, we will create a project which targets both iOS and tvOS apps, then create the pinball table's flippers and ball.



How to Create a Universal iOS and tvOS Project

Login to Mark Progress

Touching the Screen Left or Right and Apple Remote Tapping Left or Right

Login to Mark Progress

Initial Flipper Setup

Login to Mark Progress

Applying Upward Impulses and Lowering the Flippers

Login to Mark Progress

SKPhysicsContacts and Locking the Flipper Up

Login to Mark Progress

Adding the pinball

Login to Mark Progress

Pinball Tutorial – Project Files at the End of Session 1

Login to Mark Progress


Section 2

Working with External Game Controllers and Camera Tracking

In this second session of video tutorials, we will discuss the Swift and Sprite Kit code to work with external game controllers for both tvOS and iOS. We will also create a camera in the scene to follow the pinball continuously or alternatively move up and down if the ball has left the visible area of the screen.



Adding External Controllers for tvOS or iOS – The Extended Gamepad

Login to Mark Progress

Adding External Controllers for tvOS or iOS Continued – The Standard Game and Micro Controller

Login to Mark Progress

How to Make the Camera Track the Ball

Login to Mark Progress

Pinball Tutorial – Project Files at the End of Session 2

Login to Mark Progress


Section 3

Setting up the Plunger

In this third session of video tutorials, we will setup the Plunger, first for tvOS, and then for iOS apps. The tvOS version will react to the A button (or other buttons of your choice) being pushed down and released. The iOS version will move the plunger as the user's fingers move down the screen. When released, the plunger is released, giving the ball a variable amount of power into the table. We will also create an initial Table Object class



Setting up the pinball table with new walls, ramps and plungers

Login to Mark Progress

Pinball Tutorial – Project Files after New Table Elements Added

Login to Mark Progress

Setting up the Plunger for tvOS

Login to Mark Progress

Setting up the Plunger for iOS

Login to Mark Progress

Adding a Table Object (the Ramp)

Login to Mark Progress

Pinball Tutorial – Project Files End of Session 3

Login to Mark Progress


Section 4

Starting Gate, Property Lists, and Table Objects

In this session of video tutorials, we'll create a starting gate which locks itself when the ball leaves the launch gutter. Then work with a Property List to make our TableObject class flexible for many potential types of collide-able objects to come.



Toggling Open or Closed a Starting Gate

Login to Mark Progress

Parsing a Property List for Table Object Data

Login to Mark Progress

The Property List Continued and Adding Collision Animations

Login to Mark Progress

Limiting Collision Animations and Reseting Textures on Ball Loss

Login to Mark Progress

Setting Various Physics Body Types

Login to Mark Progress

Score and Achievment Labels

Login to Mark Progress

Pinball Tutorial – Project Files End of Session 4

Login to Mark Progress


Section 5

Adding a Light Class, More Flippers, and Ramps

In this session of video tutorials, we'll look at how to create a Light class (mostly used for rolling over lights on the table), how to add more flippers with property list-driven options, and how to create the oh-so-popular pinball ramp!



Adjusting Flippers with Property List

Login to Mark Progress

Adding a Light Class

Login to Mark Progress

Setting up the Rails

Login to Mark Progress

Handling Physics Contacts for the Rails

Login to Mark Progress

Pinball Tutorial – Project Files End of Session 5

Login to Mark Progress


Section 6

Holding the Ball, Stuck Balls, Table Properties and Much More!

In this session of video tutorials, we keep adding to our Swift and Sprite Kit pinball game by: adjusting the gravity, making table objects hold onto the ball temporarily, make "holes" to visually drop the ball in one place and come out another, set a dynamic depth so some table objects can be behind or in front of the ball depending on it's position, handle stuck ball situations, and add properties for the main table.



Adjusting Gravity, Adding Custom Table Object Vectors and Dynamic Depth

Login to Mark Progress

Making Table Objects Hold the Ball and Related Options

Login to Mark Progress

Dealing with Stuck Balls and Balls Left

Login to Mark Progress

Adding Properties for the Table Itself

Login to Mark Progress

Pinball Tutorial – Project Files End of Session 6

Login to Mark Progress


Section 7

Loading New Tables and Adding Goals for Players to Achieve

In this session of pinball tutorials, we make it possible to advance to a new table if the score is over a certain amount or get sent back to specific table if the player's score is too low. We'll also begin working on adding Goals for Table Objects this session. The project will support an unlimited number of "goals" of your choosing. For example, we might create an "ExtraBall" goal which requires colliding with something x number of times. Or a goal might be to progressively activate a Score Multiplier, like 2x, then 4x, then 6x, etc and so on. Ultimately we will extend this to the Light class as well, and have a very powerful system for achieving multiple goals and triggering just about anything in the game.



Helpers Class to Specify Alternate SKS Files

Login to Mark Progress

Loading the Next Table or Replaying Tables and Device Specific Properties

Login to Mark Progress

Odds and Ends

Login to Mark Progress

Goals Introduction and Property List Options

Login to Mark Progress

NSNotifications for Goal Addition and Subtraction

Login to Mark Progress

Goal Achievements

Login to Mark Progress

Reset Goals and Objects after an Achievement

Login to Mark Progress

Pinball Tutorial – Project Files End of Session 7

Login to Mark Progress


Section 8

Adding More Goals, More to the Light Class, and Sounds!

In this session we'll continue adding more possibilities to our Goal properties and we'll also super-size our Light class to make it even more useful than before (a lot of animation possibilities). Plus we'll spend a lot of time on SOUNDS!



Adding More Goal Options

Login to Mark Progress

Turbulence, AchievementLabels, Sounds,Extra Ball Goals

Login to Mark Progress

Random Sounds for Goals and Sequential Sounds

Login to Mark Progress

Making Table Objects and Lights Play Sounds

Login to Mark Progress

General Table Sound Properties

Login to Mark Progress

Filling in More Table Sounds and Adding a Tilt Option

Login to Mark Progress

Adding Animations to the Light Class

Login to Mark Progress

Finishing Off the Light Animation

Login to Mark Progress

Pinball Tutorial – Project Files End of Session 8

Login to Mark Progress


Section 9

Toggling and Score Multiple Players, Pausing, and Adding a Button Class

This is the End. Well, almost. We'll tackle toggling between players in 2 Player Mode and program in a separate ball and score count for each player. We'll also add options for dedicated score labels for each player. Then in the last half of this session, we'll work on pausing and un-pausing the scene, and adding a Button class to use when the scene is paused to either resume the game, abandon the ball, or load new tables in either 1 or 2 player mode.



Toggling Between Players

Login to Mark Progress

Ball Count and Score for Multiple Players

Login to Mark Progress

Dedicated Score and Player Labels

Login to Mark Progress

Button Setup

Login to Mark Progress

Tapping the Menu to Pause or Unpause

Login to Mark Progress

Creating a Selection Array for Buttons

Login to Mark Progress

Navigating the Buttons on the TV Controllers

Login to Mark Progress

Selecting Buttons from Controllers and Handling What Each Does

Login to Mark Progress

Handling Button Touches on the iOS Devices

Login to Mark Progress

Pinball Tutorial – Project Files End of Session 9

Login to Mark Progress





Category: Game Development  -   Primary Software: Xcode  -  
Tags:   Pinball - Xcode - SpriteKit - swift - top down - game development - physics - collisions - gestures - touches - skaction











Get a Free account...

Sign up for a FREE user account below. No payment info required.
We'll even send a Limited Time Discount Code for half off our Lifetime Membership!















Know what an affiliate program is? You make money just by sharing links to our site! Win. Win.

Earn when you refer any buyer here! 30 day tracking. Commissions are 33%-50% and recur on subscription products!