Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
iOS Swift Game Development Cookbook
Preface
Audience
Organization of This Book
Additional Resources
Conventions Used in This Book
Using Code Examples
Safari® Books Online
How to Contact Us
Acknowledgments
1. Laying Out a Game
Laying Out Your Engine
Problem
Solution
Discussion
Creating an Inheritance-Based Game Layout
Problem
Solution
Discussion
Creating a Component-Based Game Layout
Problem
Solution
Discussion
Calculating Delta Times
Problem
Solution
Discussion
Detecting When the User Enters and Exits Your Game
Problem
Solution
Discussion
Updating Based on a Timer
Problem
Solution
Discussion
Updating Based on When the Screen Updates
Problem
Solution
Discussion
Pausing a Game
Problem
Solution
Discussion
Calculating Time Elapsed Since the Game Start
Problem
Solution
Discussion
Working with Closures
Problem
Solution
Discussion
How closures work
Closures and other objects
Writing a Method That Calls a Closure
Problem
Solution
Discussion
Working with Operation Queues
Problem
Solution
Discussion
Performing a Task in the Future
Problem
Solution
Discussion
Making Operations Depend on Each Other
Problem
Solution
Discussion
Filtering an Array with Closures
Problem
Solution
Discussion
Loading New Assets During Gameplay
Problem
Solution
Discussion
Adding Unit Tests to Your Game
Problem
Solution
Discussion
2D Grids
Problem
Solution
Discussion
2. Views and Menus
Working with Storyboards
Problem
Solution
Creating View Controllers
Problem
Solution
Discussion
Using Segues to Move Between Screens
Problem
Solution
Discussion
Using Constraints to Lay Out Views
Problem
Solution
Discussion
Adding Images to Your Project
Problem
Solution
Discussion
Slicing Images for Use in Buttons
Problem
Solution
Discussion
Using UI Dynamics to Make Animated Views
Problem
Solution
Adding gravity to views
Adding collision
Adding attachment
Discussion
Moving an Image with Core Animation
Problem
Solution
Discussion
Rotating an Image
Problem
Solution
Discussion
Animating a Popping Effect on a View
Problem
Solution
Discussion
Theming UI Elements with UIAppearance
Problem
Solution
Discussion
Rotating a UIView in 3D
Problem
Solution
Discussion
Overlaying Menus on Top of Game Content
Problem
Solution
Discussion
Designing Effective Game Menus
Problem
Solution
Discussion
3. Input
Detecting When a View Is Touched
Problem
Solution
Discussion
Responding to Tap Gestures
Problem
Solution
Discussion
Dragging an Image Around the Screen
Problem
Solution
Discussion
Detecting Rotation Gestures
Problem
Solution
Discussion
Detecting Pinching Gestures
Problem
Solution
Discussion
Creating Custom Gestures
Problem
Solution
Discussion
Receiving Touches in Custom Areas of a View
Problem
Solution
Discussion
Detecting Shakes
Problem
Solution
Discussion
Detecting Device Tilt
Problem
Solution
Discussion
Getting the Compass Heading
Problem
Solution
Discussion
Accessing the User’s Location
Problem
Solution
Discussion
Calculating the User’s Speed
Problem
Solution
Discussion
Pinpointing the User’s Proximity to Landmarks
Problem
Solution
Discussion
Receiving Notifications When the User Changes Location
Problem
Solution
Discussion
Looking Up GPS Coordinates for a Street Address
Problem
Solution
Discussion
Looking Up Street Addresses from the User’s Location
Problem
Solution
Discussion
Using the Device as a Steering Wheel
Problem
Solution
Discussion
Detecting Magnets
Problem
Solution
Discussion
Utilizing Inputs to Improve Game Design
Problem
Solution
Discussion
4. Sound
Playing Sound with AVAudioPlayer
Problem
Solution
Discussion
Recording Sound with AVAudioRecorder
Problem
Solution
Discussion
Working with Multiple Audio Players
Problem
Solution
Discussion
Cross-Fading Between Tracks
Problem
Solution
Discussion
Synthesizing Speech
Problem
Solution
Discussion
Getting Information About What the Music App Is Playing
Problem
Solution
Discussion
Detecting When the Currently Playing Track Changes
Problem
Solution
Discussion
Controlling Music Playback
Problem
Solution
Discussion
Allowing the User to Select Music
Problem
Solution
Discussion
Cooperating with Other Applications’ Audio
Problem
Solution
Discussion
Determining How to Best Use Sound in Your Game Design
Problem
Solution
Discussion
5. Data Storage
Saving the State of Your Game
Problem
Solution
Discussion
Storing High Scores Locally
Problem
Solution
Discussion
Using iCloud to Save Games
Problem
Solution
Discussion
Using the iCloud Key-Value Store
Problem
Solution
Discussion
Loading Structured Information
Problem
Solution
Discussion
Deciding When to Use Files or a Database
Problem
Solution
Discussion
Managing a Collection of Assets
Problem
Solution
Discussion
Storing Information in NSUserDefaults
Problem
Solution
Discussion
Implementing the Best Data Storage Strategy
Problem
Solution
Discussion
In-Game Currency
Problem
Solution
Discussion
6. 2D Graphics and Sprite Kit
Getting Familiar with 2D Math
Coordinate System
Vectors
Vector lengths
Moving vectors
Rotating vectors
Scaling vectors
Dot product
Creating a Sprite Kit View
Problem
Solution
Discussion
Creating a Scene
Problem
Solution
Discussion
Adding a Sprite
Problem
Solution
Discussion
Adding a Text Sprite
Problem
Solution
Discussion
Determining Available Fonts
Problem
Solution
Discussion
Including Custom Fonts
Problem
Solution
Discussion
Transitioning Between Scenes
Problem
Solution
Discussion
Moving Sprites and Labels Around
Problem
Solution
Discussion
Adding a Texture Sprite
Problem
Solution
Discussion
Creating Texture Atlases
Problem
Solution
Discussion
Using Shape Nodes
Problem
Solution
Discussion
Using Blending Modes
Problem
Solution
Discussion
Using Image Effects to Change the Way That Sprites Are Drawn
Problem
Solution
Discussion
Using Bézier Paths
Problem
Solution
Discussion
Creating Smoke, Fire, and Other Particle Effects
Problem
Solution
Discussion
Shaking the Screen
Problem
Solution
Discussion
Animating a Sprite
Problem
Solution
Discussion
Parallax Scrolling
Problem
Solution
Discussion
Creating Images Using Noise
Problem
Solution
Discussion
7. Physics
Reviewing Physics Terms and Definitions
Adding Physics to Sprites
Problem
Solution
Discussion
Creating Static and Dynamic Objects
Problem
Solution
Discussion
Defining Collider Shapes
Problem
Solution
Discussion
Setting Velocities
Problem
Solution
Discussion
Working with Mass, Size, and Density
Problem
Solution
Discussion
Creating Walls in Your Scene
Problem
Solution
Discussion
Controlling Gravity
Problem
Solution
Discussion
Keeping Objects from Falling Over
Problem
Solution
Discussion
Controlling Time in Your Physics Simulation
Problem
Solution
Discussion
Detecting Collisions
Problem
Solution
Discussion
Finding Objects
Problem
Solution
Discussion
Working with Joints
Problem
Solution
Discussion
Working with Forces
Problem
Solution
Discussion
Adding Thrusters to Objects
Problem
Solution
Discussion
Creating Explosions
Problem
Solution
Discussion
Using Device Orientation to Control Gravity
Problem
Solution
Discussion
Dragging Objects Around
Problem
Solution
Discussion
Creating a Car
Problem
Solution
Discussion
8. 3D Graphics
Working with 3D Math
3D Vectors and GLKit
Matrices
Creating a GLKit Context
Problem
Solution
Discussion
Drawing a Square Using OpenGL
Problem
Solution
Discussion
Loading a Texture
Problem
Solution
Discussion
Drawing a Cube
Problem
Solution
Discussion
Rotating a Cube
Problem
Solution
Discussion
Moving the Camera in 3D Space
Problem
Solution
Discussion
9. Intermediate 3D Graphics
Loading a Mesh
Problem
Solution
Discussion
Parenting Objects
Problem
Solution
Discussion
Animating a Mesh
Problem
Solution
Discussion
Batching Draw Calls
Problem
Solution
Discussion
Creating a Movable Camera Object
Problem
Solution
Discussion
10. Advanced 3D Graphics
Understanding Shaders
Problem
Solution
Discussion
Working with Materials
Problem
Solution
Discussion
Texturing with Shaders
Problem
Solution
Discussion
Lighting a Scene
Problem
Solution
Discussion
Using Normal Mapping
Problem
Solution
Discussion
Making Objects Transparent
Problem
Solution
Discussion
Adding Specular Highlights
Problem
Solution
Discussion
Adding Toon Shading
Problem
Solution
Discussion
11. Scene Kit
Setting Up for Scene Kit
Problem
Solution
Discussion
Creating a Scene Kit Scene
Problem
Solution
Discussion
Showing a 3D Object
Problem
Solution
Discussion
Working with Scene Kit Cameras
Problem
Solution
Discussion
Creating Lights
Problem
Solution
Discussion
Animating Objects
Problem
Solution
Discussion
Working with Text Nodes
Problem
Solution
Discussion
Customizing Materials
Problem
Solution
Discussion
Texturing Objects
Problem
Solution
Discussion
Normal Mapping
Problem
Solution
Discussion
Constraining Objects
Problem
Solution
Discussion
Loading COLLADA Files
Problem
Solution
Discussion
Using 3D Physics
Problem
Solution
Discussion
Adding Reflections
Problem
Solution
Discussion
Hit-Testing the Scene
Problem
Solution
Discussion
12. Artificial Intelligence and Behavior
Making Vector Math Nicer in Swift
Problem
Solution
Discussion
Making an Object Move Toward a Position
Problem
Solution
Discussion
Making Things Follow a Path
Problem
Solution
Discussion
Making an Object Intercept a Moving Target
Problem
Solution
Discussion
Making an Object Flee When It’s in Trouble
Problem
Solution
Discussion
Making an Object Decide on a Target
Problem
Solution
Discussion
Making an Object Steer Toward a Point
Problem
Solution
Discussion
Making an Object Know Where to Take Cover
Problem
Solution
Discussion
Calculating a Path for an Object to Take
Problem
Solution
Discussion
Finding the Next Best Move for a Puzzle Game
Problem
Solution
Discussion
Determining If an Object Can See Another Object
Problem
Solution
Discussion
Using AI to Enhance Your Game Design
Problem
Solution
Discussion
13. Networking and Social Media
Using Game Center
Getting Information About the Logged-in Player
Problem
Solution
Discussion
Getting Information About Other Players
Problem
Solution
Discussion
Making Leaderboards and Challenges with Game Center
Problem
Solution
Discussion
Finding People to Play with Using Game Center
Problem
Solution
Discussion
Creating, Destroying, and Synchronizing Objects on the Network
Problem
Solution
Discussion
Interpolating Object State
Problem
Solution
Discussion
Handling When a Player Disconnects and Rejoins
Problem
Solution
Discussion
Making Turn-Based Gameplay Work with Game Kit
Problem
Solution
Discussion
Sharing Text and Images to Social Media Sites
Problem
Solution
Discussion
Storing Saved Games in Game Center
Problem
Solution
Discussion
Implementing iOS Networking Effectively
Problem
Solution
Discussion
Implementing Social Networks Effectively
Problem
Solution
Discussion
14. Game Controllers and External Screens
Detecting Controllers
Problem
Solution
Discussion
Getting Input from a Game Controller
Problem
Solution
Discussion
Showing Content via AirPlay
Problem
Solution
Discussion
Using External Screens
Problem
Solution
Discussion
Designing Effective Graphics for Different Screens
Problem
Solution
Designing for iPhones
Designing for iPads
Designing for larger screens
Discussion
Dragging and Dropping
Problem
Solution
Discussion
15. Performance and Debugging
Improving Your Frame Rate
Problem
Solution
Discussion
Making Levels Load Quickly
Problem
Solution
Discussion
Dealing with Low-Memory Issues
Problem
Solution
Discussion
Tracking Down a Crash
Problem
Solution
Discussion
Fixing exceptions
Fixing memory pressure issues
Working with Compressed Textures
Problem
Solution
Discussion
Working with Watchpoints
Problem
Solution
Discussion
Logging Effectively
Problem
Solution
Discussion
Creating Breakpoints That Use Speech
Problem
Solution
Discussion
Index
Colophon
Copyright
← Prev
Back
Next →
← Prev
Back
Next →