NEW: Master Swift design patterns with my latest book! >>

< Previous: Overview   Next: Getting up and running: SKCropNode >

Setting up

It's time for another game, and we'll be using more of SpriteKit to build a whack-a-mole game, except with penguins because Whack-a-Penguin isn't trademarked. You're going to learn about SKCropNode, SKTexture and some more types of SKAction, and we'll also use more GCD to execute closures after a delay.

Create a new SpriteKit game project in Xcode, named Project14 and targeting landscape iPads, then delete most of the example code just like you did in project 11 – you want the same clean project, with no “Hello World” template content.

If you don’t remember all the steps, here’s the abridged version:

  • Delete Actions.sks.
  • Open GameScene.sks and delete the “Hello World” label.
  • Change the scene’s anchor point to X:0 Y:0, its width to 1024 and its height to 768.

Finally, remove almost everything in GameScene.swift so that it looks like this:

import SpriteKit

class GameScene: SKScene {
    override func didMove(to view: SKView) {
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    }
}

I won’t be repeating those instructions again from now on.

Now download the files for this project from GitHub (https://github.com/twostraws/HackingWithSwift) and copy the assets from the Content folder into your Xcode project. Please also copy in the file Helper.swift; we'll be using it later.

All set? Open up GameScene.swift and get whacking!

Reminder: When working with SpriteKit projects I strongly recommend you use a device if possible. If you don’t have a physical iPad to hand, use the lowest-spec iPad simulator rather than something like the 12.9-inch iPad Pro – you'll get much slightly frame rates, making it much more suitable for testing.

Build for watchOS

Take your existing Swift skills to Apple's tiniest platform – check out Hacking with watchOS!

< Previous: Overview   Next: Getting up and running: SKCropNode >
Click here to visit the Hacking with Swift store >>