Story Tellers Kit 2: Creation Videos - Lifetime Access
Learn the Swift 2 programming behind the Story Teller iOS Starter Kit 2! As a Lifetime Access purchase of the kit, not only do you get the kit itself, you also have access to this in-depth series of creation videos. So if you decide to make modifications to your version of the kit, you'll know exactly where to add code and how it all works.
If you only want to watch the Quick Setup Guide videos, they will be posted separately.
Module 1 | Initial Setup | |
This series of video tutorials will teach you the initial setup for the kit. You will learn how to work with a Universal iOS project, in particular defining different Scene files for each device, how to create custom classes and subclasses in Swift 2, how to use SKCameraNodes (again on a per device family basis), how to work with a Property List to extend the functionality of SKSpriteNodes and your SKScene classes, basic collision detection, and how to transition from one scene to another. So there's plenty to learn here about iOS9 and Xcode 7's new features for developers. | ||
Unit 1 | Downloadable Video Files (optional, if you want them!) | |
Unit 2 | Preview the Kit and Xcode 7's new Scene Features | |
Unit 3 | Using Different Scene Files for Device Types | |
Unit 4 | Creating a Custom Class to Subclass SKSpriteNodes in Scene Files | |
Unit 5 | Using the Property List to Define SKCameraNodes (for either iPad or iPhone) | |
Unit 6 | Passing Properties into Elements | |
Unit 7 | Using SKReferenceNodes (Scene groups) and Reference Actions | |
Unit 8 | Triggering Events by Touching the Highest Element on the Page | |
Unit 9 | Changing to a new Page and Removing Nodes on Touch | |
Unit 10 | Project Files - End of Session 1 | |
Module 2 | Page Events, Next, Previous, Random Pages, and Transitions | |
In this next series of videos we'll tackle the various ways to get from one page to another with the starter kit. We'll create functions to go to the next page or previous page defined by an array that stores the page ordering. You can have multiple page order arrays, for example an order for Chapter1, Chapter2, etc. We'll also define properties to jump to random pages in the book. These too will be defined by arrays. You can have as many random page "pools" as you want. We'll also create an Events dictionary for each page, so when a page loads up it can immediately trigger an event. And since going from one page to another involves transitioning scenes, we'll make it so Elements and the page Settings can set different transition properties. | ||
Unit 1 | What's Ahead in Session 2 | |
Unit 2 | Trigger Events Immediately When the Page Loads | |
Unit 3 | Specifying Transition Settings (type, duration, direction, etc) | |
Unit 4 | Going to Next and Previous Pages | |
Unit 5 | Going to Random Pages | |
Unit 6 | Continue the Last Viewed Page with NSUserDefaults | |
Unit 7 | Project Files - End of Session 2 | |
Module 3 | Element Display - Showing, Hiding, Removing, and Moving Based on Touch | |
In this series of Swift 2 and Sprite Kit video tutorials we will learn how to show or hide our Element class as well as SKReferenceNodes. We will also remove Elements, add a random element from an SKReferenceNode, pause and unpause Elements, and make an element move to a touch location, node's specific location or follow the movement of the finger. | ||
Unit 1 | Showing and Hiding Elements and SKReferenceNodes | |
Unit 2 | Conditionally Showing and Hiding Elements or SKReferenceNodes | |
Unit 3 | Removing Nodes by Name and Adding SKReferenceNodes and Random Elements from an SKReferenceNode | |
Unit 4 | Pausing or Unpausing Nodes and the Page Class | |
Unit 5 | Moving Nodes to a Touch Location or Another Node's Location | |
Unit 6 | Make Elements Follow Touch | |
Unit 7 | Using Your Own Extensions with the Event Chain | |
Unit 8 | Project Files - End of Session 3 | |
Module 4 | Running Actions from the Property List | |
In this series of videos we will program the Property List to run and stop Actions on the current Element touched or on any group Elements. | ||
Unit 1 | Running Actions Automatically on Elements | |
Unit 2 | Running and Stopping Actions via Touch Events | |
Unit 3 | ActionPools (Groups) to Trigger Actions on Unlimited Nodes | |
Unit 4 | Stopping Actions with ActionPools | |
Unit 5 | Running Actions Automatically From the Pages Dictionary | |
Unit 6 | Changing Cameras | |
Unit 7 | Project Files - End of Session 4 | |
Module 5 | Setting Up Dynamic SKLabelNodes | |
This session we will setup SKLabelNodes in the scene and via the Property List change the text of those labels to be any saved value we want. This could be an NSUserDefault, for example, that displays the user's name. Which will obviously involve capturing input text as well. We will also look at incrementing up or down saved values, for example this might be the number of letters touched in a mini-game. The SKLabelNode would then display that count. | ||
Unit 1 | Using Variable Values In Place of Text | |
Unit 2 | Randomizing Text Prefixes and Postfixes | |
Unit 3 | Opening the iOS Keyboard to Set Text Values | |
Unit 4 | Closing the Keyboard and Saving Values | |
Unit 5 | Keyboard Appearance and NSNotifications | |
Unit 6 | Incrementing Saved Values and Clearing Them | |
Unit 7 | Setting Values with Touch Events or Automatically When a Page Loads | |
Unit 8 | Project Files - End of Session 5 | |
Module 6 | Particle Emitters, Event Timers, Listeners and Element Generators | |
The true power of this kit shines this session. First we will swap SKEmitterNodes that we laid out in the Scene file with .SKS files (as a convenience mostly). Then create Event Timers, which will run any event we want after an initial delay and repeatedly (if we want). So this could do mundane tasks like updating a saved value, for example, the time left on the clock to accomplish something. Or anything else you could do with an event (showing or hiding elements, running actions, stopping actions, changing cameras, etc). Then we will create Event Listeners which can do any number of events when a particular saved value equals something, for example, when the BalloonsPopped equals 5, then we call OpenPage. And finally we will work with Element Generators, which can clone an element as many times you want as often as you want. So for example, you might clone balloons that each have different Touch Events and the user is supposed to only touch those that have a letter E on them. | ||
Unit 1 | Custom Particle Emitters using SKEmitterNodes as Placeholders | |
Unit 2 | Event Timers to delay or repeat triggering events / actions | |
Unit 3 | Event Listeners to trigger events when certain values equal, exceed or are less than a value | |
Unit 4 | Element Generators | |
Unit 5 | Project Files - End of Session 6 | |
Module 7 | Tap and Rotation Gestures | |
This session we mostly focus on creating tap and rotation controls for items in your book. These can be applied to any SKNode, including the camera itself and particle emitters. You'll be able to move anything around based on the location of the reader's tap (or double tap, triple tap, two finger tap, etc). And any number of nodes can be rotated based on a rotation gesture. This adds a whole new element of fun to your potential iOS book as reader's can explore and interact more than before. | ||
Unit 1 | Setting Up Tap Gestures | |
Unit 2 | Moving Nodes (and Parallax Moving Node) Based on the Tap | |
Unit 3 | Rotation Gestures | |
Unit 4 | Extending the Follow Touch Option to Any Node | |
Unit 5 | Project Files - End of Session 7 | |
Module 8 | Sounds, Textures, and Camera Follow Options and More | |
This session we will work with sounds, both using AVFoundation and SKAction based sound files, change textures on elements (SKSpriteNodes), change textures from an array pool containing image names (great for toggling images), make a camera follow a node, make other nodes follow the camera, and more. | ||
Unit 1 | Adding a Max Touch Count to Elements | |
Unit 2 | Playing and Stopping Background Sounds and Narration Sounds | |
Unit 3 | RunActions, StopActions and RunOrStopActions from the Page | |
Unit 4 | Making the Camera Track a Node | |
Unit 5 | Offsetting Positions as an Event | |
Unit 6 | Changing Textures or Cycling through Textures from a Pool | |
Unit 7 | Project Files - End of Session 8 | |
Module 9 | Physics | |
This session we'll really take the fun to the next level by learning how to use the easy-to-set physics properties in Xcode 7's Scene editor and then work them into the kit. We'll start by defining a edge-based boundaries (to keep physics-based elements within the iOS devices screen area or a multiplier of it) Then we will play around with gravity, make non-physics based nodes follow a node (with an offset), trigger events based on any physics object hitting another, use the Contact and Category Mask to trigger events only when specific elements have collided, apply impulse vectors to objects and end with how to create directional buttons to move any number of elements around the scene. | ||
Unit 1 | Setting Gravity and a Physics Boundary Area Around the Scene | |
Unit 2 | Reversing Gravity, Toggling On or Off an Elements Gravity, and Making Any Node Follow Another | |
Unit 3 | Trigger Events with any Two Physics Elements Contacting Each Other | |
Unit 4 | Trigger Events with Specific Physics Contacts | |
Unit 5 | Applying Impulse Events | |
Unit 6 | Adding Directional Buttons to Apply the Impulse Events | |
Unit 7 | Project Files - End of Session 9 | |
Module 10 | Conditional Values, Saving Texture Preferences, Touch Up Events, Inventory Slots / Paths and More | |
This final session in the "creation of" is jam-packed with awesome additions. First off we expand our listeners to do event when either EVERY listening condition is met, OR when a group of conditions is met. So you could check that (1) object is intersecting another object (2) five balloons have been popped (3) an input text field has a certain value. Why would you? Who knows, but its possible. We will also create a listener for puzzle-style pairing. We'll add functionality for Touch Up events. We add event properties to move / animate nodes directly to other nodes or to the next "available slot", which means you could send items to an inventory style area. Or slots could define locations across the board to hop from one to the other. We will restrict nodes following touch movements to specific areas. And we will create properties so texture preferences can be saved. In other words, if the reader prefers to see pink clothes on a character vs blue clothes, those settings will be saved throughout the lifespan of the book. | ||
Unit 1 | Listening for all Conditions or All Conditions in a Group | |
Unit 2 | Listening for Non-Equality values and Puzzle Pairing | |
Unit 3 | RunAction, StopAction and RunOrStopAction Dictionary from a Touch Event | |
Unit 4 | TouchUp Events | |
Unit 5 | MoveNodeToNode and AnimateNodeToNode | |
Unit 6 | Move Node To Next Available Slot (or place in a path basically) | |
Unit 7 | Changing Textures to User Preferences | |
Unit 8 | Restricting FollowTouch Positions and WrapUp | |
Unit 9 | Project Files - End of Session 10 - Pre-Demo Version 1 |