Index
A
- achievement
- creating, in iTunes Connect / Creating a new achievement in iTunes Connect
- updating, from code / Updating achievements from the code
- AdMob
- reference / Adding an AdMob Ad in the App
- AdMob Ad
- adding, in app / Adding an AdMob Ad in the App
- ads, in games
- upsides / The upsides to showing ads
- downsides / The downsides to showing ads
- anchor points
- aligning with / Alignment with anchor points
- animation
- preparing / Animation—movement, scaling, and rotation
- animations
- sequencing / Sequencing multiple animations
- damage animation / The damage animation
- game over animation / The game over animation
- app
- Bundle ID, creating for / Creating the Bundle ID for the app
- creating, in itunesconnect portal / Create the App in the itunesconnect portal
- uploading, from Xcode / Upload the App and submit for review
- ARKit
- about / Requirements for the project
- ARKit project
- AR Spritekit project
- requisites / Requirements for the project
- creating / Creating an AR Spritekit project
- text, adding / Adding text and crosshair
- crosshair, adding / Adding text and crosshair
- anchors, adding at random location / Adding anchors at random locations
- custom sprite, adding / Adding custom sprite
- touch controls, registering / Registering touch controls to remove game objects
- art
- organizing, into texture atlases / Organizing art into texture atlases
- collecting, into texture atlases / Collecting art into texture atlases
- art assets
- locating / Locating and adding the art assets
- adding / Locating and adding the art assets
- Assets.xcassets
- exploring / Exploring Assets.xcassets
- Automatic Reference Counting (ARC) / Why you will love Swift
- AVAudio
- music, adding with / Adding music with AVAudio
B
- background music
- adding, to game / Playing background music
- Bat class
- adding / Another terror - Bats!, Adding the Bat class
- bee image
- adding, to project / Adding the bee image to your project
- Beekeeper / The Beekeeper
- bee node
- Bees, bees everywhere! project
- texture atlas, adding for ground art / The icy tundra
- ground texture, adding to Assets.xcassets / Adding the ground texture to Assets.xcassets
- Ground class, adding / Adding the Ground class
- ground, wiring up / Running wire to the ground
- player’s character, adding / Adding the player's character
- GameScene class, renovating / Renovating the GameScene class
- physics simulation / Dropping like flies
- ground, solidifying / Solidifying the ground
- collision, creating / Bumping bees into bees
- bitmasks / Using category masks in Swift
- Blade class
- bronze coins
- turning, to gold / Turning bronze coins into gold coins
- Bundle ID
- creating, for app / Creating the Bundle ID for the app
- buttons
- adding / Adding labels and buttons
C
- camera
- centering, on sprite / Centering the camera on a sprite
- improving / Improving the camera
- adding, to scene / Adding a camera to the scene
- categories, assigning to game objects
- about / Assigning categories to game objects
- player / The player
- ground / The ground
- Power-up Star / The Power-up Star
- enemies / Enemies
- coins / Coins
- category masks
- using, in Swift / Using category masks in Swift
- character animation
- adding / Adding character animation
- circle particle asset
- adding / Adding the circle particle asset
- classes
- game objects, organizing into / Organizing game objects into classes
- coin classes
- creating / Creating the coin classes
- coin collection
- implementing / Collecting coins
- coins
- adding / Adding coins
- coin sound effect
- adding, to Coin class / Adding the coin sound effect to the Coin class
- collision
- about / Learning the SpriteKit collision vocabulary, Collision versus contact
- versus contact / Collision versus contact
- collision detection
- console output
- viewing / Viewing console output
- contact
- about / Collision versus contact
- contact code
- testing / Testing our contact code
- contact events
- adding, to game / Adding contact events to our game
- GameScene, preparing for / Preparing GameScene for contact events
- control scheme
- implementing, for penguin / Teaching our penguin to fly
- Core Motion
- Core Motion code
- implementing / Implementing the Core Motion code
- crate contact events
- wiring up / Wiring up crate contact events
- Crate particle effects
- creating / Creating the Crate particle effects
- crates
- adding, to smash open / Adding crates to smash open
- crowdfunding
- leveraging / Leveraging crowdfunding
- pros / Pros and cons of crowdfunding
- cons / Pros and cons of crowdfunding
- custom classes
- using, in scene editor / Using custom classes in the scene editor
D
- damage animation / The damage animation
- data
- sending / Sending and receiving data
- receiving / Sending and receiving data
- demo code
- examining / Examining the demo code
- development environment
- setting up / Setting up your development environment
- display ads
- displaying, for revenue / Showing display ads for revenue
E
- emitter nodes
- recycling, with particle pools / Recycling emitter nodes with particle pools
- EncounterManager
- wiring up, in GameScene class / Wiring up EncounterManager in the GameScene class
- EncounterManager class
- updating / Updating the EncounterManager class
- encounters
- building, for Pierre Penguin / Building encounters for Pierre Penguin
- creating / Creating our first encounter
- building / Building more encounters
- endless encounters
- spawning / Looping encounters for a never-ending world
- enemy
- external 3D application
- scene, importing from / Importing scenes from an external 3D application
F
- fixed joint / Exploring physics simulation mechanics
- floor
- adding, to scene / Adding a floor
- foreign markets
- localization / Localization in foreign markets
G
- game
- scenes, integrating into / Integrating scenes into the game
- Game Center
- interacting with / Integrating with Game Center
- opening, in game / Opening Game Center in our game
- Game Center account
- authenticating / Authenticating the player's Game Center account
- game code
- structuring / Structuring your game code
- game logic
- level data, separating from / Separating level data from game logic
- Gameloop
- adding / Adding the Gameloop
- contact, checking between hero and enemy / Checking for contact
- Game Objects
- adding / Adding Game Objects
- plane detection, stopping / Stop detecting planes
- light source, adding / Adding light source
- ground node, adding / Adding ground node
- hero, adding / Adding Hero and Enemy
- enemy, adding / Adding Hero and Enemy
- game objects
- organizing, into classes / Organizing game objects into classes
- testing / Testing the new game objects
- game over animation / The game over animation
- GameOver condition
- setting / Setting a GameOver condition
- Gameover text
- adding / Adding Score and Gameover text
- GameScene
- touchesBegan, implementing / Implementing touchesBegan in the GameScene
- touches / Listening for touches in GameScene
- preparing, for contact events / Preparing GameScene for contact events
- wiring up, for game over / Wiring up GameScene for game over
- GameScene class
- EncounterManager, wiring up / Wiring up EncounterManager in the GameScene class
- informing, on player’s death / Informing the GameScene class when the player dies
- Google Mobile Ads SDK
- download link / Adding an AdMob Ad in the App
- gravity / Physics bodies and gravity
- fine-tuning / Fine-tuning gravity
- ground
- moving / Moving the ground
- looping / Looping the ground as player the moves forward
H
- heads-up display (HUD)
- adding / Adding a HUD
- implementing / Implementing the HUD
- extending / Extending the HUD
- health logic
- implementing / Player health and damage
- health power-up crate
- creating / Creating the health power-up crate
- Hero class
- creating / Creating the hero class and physics
- hurt sound effects
- adding, to Player class / Adding the power-up and hurt sound effects to the Player class
I
- images
- loading, with SKSpriteNode / Loading images with SKSpriteNode
- in-app purchases
- selling / Selling in-app purchases
- strategies / In-app purchase strategies
- adding / Adding In-App Purchases
- inbetweening / Animation—movement, scaling, and rotation
- IndieGoGo / Leveraging crowdfunding
- integrated development environment (IDE)
- about / Introducing and installing Xcode
- iTunes Connect
- achievement, creating in / Creating a new achievement in iTunes Connect
- itunesconnect portal
- app, creating / Create the App in the itunesconnect portal
K
- Kickstarter / Leveraging crowdfunding
L
- labels
- adding / Adding labels and buttons
- leaderboard
- updating, from code / Updating the leaderboard from the code
- level data
- separating, from game logic / Separating level data from game logic
- levels
- building / Building UI/menus/levels
- designing, with SpriteKit scene editor / Designing levels with the SpriteKit scene editor
- light sources
- adding, to scene / Adding light sources
- limit joint / Exploring physics simulation mechanics
- localization
- in foreign markets / Localization in foreign markets
M
- MadFly class
- main menu
- building / Building the main menu
- creating / Creating the menu scene and menu nodes
- launching, on game start / Launching the main menu when the game starts
- marketing
- starting / When to start marketing
- checklist / Marketing checklist
- marketing plan
- developing / Developing your marketing plan
- menu nodes
- creating / Creating the menu scene and menu nodes
- menus
- building / Building UI/menus/levels
- Menu Scene
- Options, adding to / Adding Options to the Menu Scene
- metadata
- storing, in SKSpriteNodeuserData property / Storing metadata in SKSpriteNodeuserData property
- movement / Animation—movement, scaling, and rotation
- Multipeer Connectivity Framework
- overview / Multipeer connectivity framework overview
- peers ID / Multipeer connectivity framework overview
- session objects / Multipeer connectivity framework overview
- advertiser objects / Multipeer connectivity framework overview
- advertiser assistant objects / Multipeer connectivity framework overview
- browser objects / Multipeer connectivity framework overview
- browser view controller object / Multipeer connectivity framework overview
- multipeer session
- initializing / Initializing a multipeer session
- application, testing / Testing the application
- multipeer session class
- creating / Creating the multipeer session class
- music
- adding, with AVAudio / Adding music with AVAudio
- mute button
N
- never-ending level
- creating / Preparing for endless flight
- nodes
- moving, with physics bodies / Movement with impulses and forces
O
- objects
- adding, to scene / Adding objects to the scene
- Options
- adding, to Menu Scene / Adding Options to the Menu Scene
- outlets
- setting / Setting outlets and adding variables
P
- Parallax background layers
- about / Parallax background layers
- background assets, adding / Adding the background assets
- background class, implementing / Implementing a background class
- backgrounds, wiring up in GameScene class / Wiring up backgrounds in the GameScene class
- parallax effect
- adding / Adding wall and floor parallax
- particle emitter
- adding, to game / Adding the particle emitter to the game
- particle pools
- emitter nodes, recycling with / Recycling emitter nodes with particle pools
- particles
- adding / Adding particles
- particle system
- using / Using the particle system
- path particle settings
- configuring / Configuring the path particle settings
- name / Name
- background / Background
- texture / Texture
- emitter / Emitter
- lifetime / Lifetime
- position range / Position Range
- angle / Angle
- speed / Speed
- acceleration / Acceleration
- alpha / Alpha
- scale / Scale
- rotation / Rotation
- color blend / Color Blend
- color ramp / Color Ramp
- physics
- creating / Creating the hero class and physics
- physics bodies / Physics bodies and gravity
- dynamic / Exploring physics simulation mechanics
- static / Exploring physics simulation mechanics
- edge / Exploring physics simulation mechanics
- nodes, moving with / Movement with impulses and forces
- physics body
- assigning, to player / Assigning a physics body to the player
- physics body shape
- creating, from texture / Creating a physics body shape from a texture
- physics categories
- setting up / Setting up the physics categories
- physics category masks
- about / Physics category masks
- physics joints / Exploring physics simulation mechanics
- reference / Exploring physics simulation mechanics
- physics simulation / Dropping like flies
- physics simulation mechanics
- exploring / Exploring physics simulation mechanics
- Physics World / Exploring physics simulation mechanics
- Pierre Penguin
- encounters, creating for / Building encounters for Pierre Penguin
- pin joint / Exploring physics simulation mechanics
- plane
- detecting / Project setup and detecting a plane
- player
- physics body, assigning to / Assigning a physics body to the player
- Player class
- retrofitting / Retrofitting the Player class for flight
- updating / Updating the Player class
- player input
- reacting to / Reacting to player input
- players
- farming / A word about farming your players
- player’s progress
- tracking / Tracking the player's progress
- positioning
- about / The story on positioning
- power-up sound effect
- adding, to Player class / Adding the power-up and hurt sound effects to the Player class
- Power-up Star
- adding / Adding the Power-up Star
- spawning / Adding the Power-up Star at random places
- Power-up Star logic / The Power-up Star logic
- presskit()
- reference / Marketing checklist
- project
- navigating / Navigating our project
- preparing / Preparing your project
- bee image, adding to / Adding the bee image to your project
- preparing, in Xcode / Preparing the project
- project navigator
- organizing / Organizing the project navigator
- projects
- completing / Managing scope and completing projects
- protocol
R
- restart game menu
- adding / Adding the restart game menu
- restart menu
- touch events, implementing for / Implementing touch events for the restart menu
- retina screens
- designing for / Designing for Retina
- in SpriteKit / Hands-on with retina in SpriteKit
- rotation / Animation—movement, scaling, and rotation
S
- safety
- granting, on game start / Granting safety as the game starts
- scaling / Animation—movement, scaling, and rotation
- scene
- object, adding to / Adding objects to the scene
- sphere, adding / Adding a sphere
- light sources, adding / Adding light sources
- camera, adding / Adding a camera to the scene
- floor, adding / Adding a floor
- importing, from external 3D application / Importing scenes from an external 3D application
- scene editor
- custom classes, using in / Using custom classes in the scene editor
- SceneKit
- scenes
- integrating, into game / Integrating scenes into the game
- SCNScene
- scene, creating / Creating a Scene with SCNScene
- scope
- managing / Managing scope and completing projects
- score
- adding / Adding Score and Gameover text
- session
- hosting / Hosting and joining the session
- joining / Hosting and joining the session
- session delegate functions
- adding / Update session and tracking
- SKAction
- sound effects, playing / Playing sound effects with SKAction
- SKAction Class Reference / Sequencing multiple animations
- SKSpriteNode
- used, for loading images / Loading images with SKSpriteNode
- SKSpriteNode class
- building / Building a SKSpriteNode class
- SKSpriteNodeuserData property
- metadata, storing / Storing metadata in SKSpriteNodeuserData property
- sliding joint / Exploring physics simulation mechanics
- smashable crates
- spawning / Spawning smashable crates that reward coins
- smash open
- crates, adding to / Adding crates to smash open
- sound assets
- adding, to game / Adding sound assets to the game
- sound effects
- playing / Playing sound effects
- playing, with SKAction / Playing sound effects with SKAction
- sphere
- adding, to scene / Adding a sphere
- spring joint / Exploring physics simulation mechanics
- sprite
- drawing / Drawing your first sprite
- about / Recapping your first sprite
- camera, centering on / Centering the camera on a sprite
- SpriteKit
- about / Embracing SpriteKit
- collision / Learning the SpriteKit collision vocabulary
- SpriteKit demo
- exploring / Exploring the SpriteKit demo
- SpriteKit overlay
- adding / Adding a SpriteKit overlay
- SpriteKit particle file
- creating / Creating a SpriteKit particle file
- SpriteKit scene editor
- levels, designing / Designing levels with the SpriteKit scene editor
- sprite onTap events
- wiring up / Wiring up the sprite onTap events
- Star class
- adding / Adding the Star class
- START GAME button
- wiring up / Wiring up the START GAME button
- Submit for Review / Upload the App and submit for review
- Swift
- about / Why you will love Swift
- features / Why you will love Swift
- prerequisites / Prerequisites
- category masks, using / Using category masks in Swift
- Swift 4.2
- new features / New in Swift 4.2
- Swift game
- creating / Creating our first Swift game
T
- texture
- tiling / Tiling a texture
- physics body shape, creating from / Creating a physics body shape from a texture
- texture atlases
- art, organizing into / Organizing art into texture atlases
- art, collecting into / Collecting art into texture atlases
- texture atlas frames
- iterating through / Iterating through texture atlas frames
- textured sprite
- drawing / Drawing your first textured sprite
- textures
- working with / Working with textures
- touches
- adding / Adding touches
- touchesBegan
- implementing, in GameScene / Implementing touchesBegan in the GameScene
- touch events
- implementing, for restart menu / Implementing touch events for the restart menu
- touch interactivity
- adding / Adding touch interactivity
- tweening / Animation—movement, scaling, and rotation
- type inference / Why you will love Swift
U
- UI
- building / Building UI/menus/levels
- creating, for app / Creating a UI for the app
V
- variables
- adding / Setting outlets and adding variables
- View
- initializing / Initializing the view
- volume slider
X
- Xcode
- about / Introducing and installing Xcode
- installing / Introducing and installing Xcode