介绍

SpriteKit是苹果平台上独有的游戏框架,可以在Mac OS X、iOS、tvOS上方便的开发2D游戏应用,其上手简单、对Swift语言支持良好。尽管在跨平台方面不如人气颇高的Cocos2D、Unity等跨平台游戏框架,但是如果只是在iOS上制作2D游戏来说,是学习成本最低的游戏框架了。
接下来我将和大家一起探索一下SpriteKit的奇妙世界

First SpriteKit Game Application

Getting started

打开 Xcode,从主菜单中选择File\New\Project...选择iOS \Application\Game 模版并点击Next。
图片描述
输入我们的游戏名ZombieConga,编程语言选择Swift,游戏技术选择SpriteKit,设备选择Universal。
图片描述
现在我们已经创建了一个Sprite Kit游戏模版,现在我们来运行一下这个模版
图片描述
在Sprite Kit中,scene包括来你的app中的所有screen,scene是Sprite Kit中SKScene的子类,现在我们的游戏只有一个scene:GameScene,打开GameScene.swift我们就能看到Hello world! Label和那些旋转的飞船的代码。现在我们不必理解他们,我们现在删除这些代码。仅保留如下内容:

import SpriteKit
class GameScene: SKScene {
  override func didMoveToView(view: SKView) {
    backgroundColor = SKColor.blackColor()
  }
}

didMoveToView()方法是展现这个场景前的方法,在这里我们可以方便的做一些初始化动作,此处我们仅将背景设置为黑色。
由于我们的游戏需要横屏,所以我们在项目设置中,禁止竖屏
图片描述
SpriteKit 模版会自动创建名为GameScene.sks.的文件,你可以通过Xcode内置的编辑器编辑这个文件,就如同用InterfaceBuilder编辑界面一样,我们在这里不使用它,所以删除这个文件

接下来打开GameViewController.swift文件,替换为如下内容

import UIKit
import SpriteKit
class GameViewController: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let scene =
      GameScene(size:CGSize(width: 2048, height: 1536))
    let skView = self.view as! SKView
    skView.showsFPS = true
    skView.showsNodeCount = true
    skView.ignoresSiblingOrder = true
    scene.scaleMode = .AspectFill
    skView.presentScene(scene)
  }
  override func prefersStatusBarHidden() -> Bool  {
return true
} }

这样我们就改变了这个视图控制器的初始化方式,先前它会通过读取GameScene文件来初始化,修改后则是通过代码来初始化。

Universal app support

这里我们看到场景的大小为2048*1536,也就是iPad Air2的屏幕大小,这是为了实现对小屏幕设备的适配
图片描述

  • iPad Retina [4:3 or 1.33]: Displayed as-is to fit the 2048x1536 screen size.

  • iPad Non-Retina [4:3 or 1.33]: Aspect fill will scale a 2048x1536 visible area by 0.5 to fit the 1024x768 screen.

  • iPhone 4S [3:2 or 1.5]: Aspect fill will scale a 2048x1366 visible area by 0.47 to fit the 960x640 screen.

  • iPhone 5 [16:9 or 1.77]: Aspect fill will scale a 2048x1152 visible area by 0.56 to fit the 1136x640 screen.

  • iPhone 6 [16:9 or 1.77]: Aspect fill will scale a 2048x1152 visible area by 0.64 to fit the 1334x750 screen.

  • iPhone 6 Plus [16:9 or 1.77]: Aspect fill will scale a 2048x1152 visible area by 0.93 to fit the 1920x1080 screen.

Adding the art

打开Assets.xcassets文件,删除自带的飞船图片,随后我们添加自己的图标及图片
图片描述

Launch screen

随后我们来设置Launch screen,与一般iOS应用开发一样,我们通过自动布局,设置一个图片相对四周距离为0,设置图片和填充方式

这样我们的游戏框架就算做好了,下节我们来开始做游戏内容


Hydrogen
2.5k 声望73 粉丝

Write code for fun.